147 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
/*! \file global.h
 | 
						|
    \brief Provides basic functionality that's used all over the place. There's usually no need to manually include this.
 | 
						|
*/
 | 
						|
 | 
						|
#include <stdbool.h>
 | 
						|
#include <stdint.h>
 | 
						|
 | 
						|
#if defined(KINC_PPC)
 | 
						|
#define KINC_BIG_ENDIAN
 | 
						|
#else
 | 
						|
#define KINC_LITTLE_ENDIAN
 | 
						|
#endif
 | 
						|
 | 
						|
#if defined(KINC_PPC)
 | 
						|
#define KINC_BIG_ENDIAN
 | 
						|
#else
 | 
						|
#define KINC_LITTLE_ENDIAN
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef _MSC_VER
 | 
						|
#define KINC_INLINE static __forceinline
 | 
						|
#else
 | 
						|
#define KINC_INLINE static __attribute__((always_inline)) inline
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef _MSC_VER
 | 
						|
#define KINC_MICROSOFT
 | 
						|
#define KINC_MICROSOFT
 | 
						|
#endif
 | 
						|
 | 
						|
#if defined(_WIN32)
 | 
						|
 | 
						|
#if defined(KINC_WINDOWSAPP)
 | 
						|
 | 
						|
#define KINC_WINDOWSAPP
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
#ifndef KINC_CONSOLE
 | 
						|
#define KINC_WINDOWS
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#elif defined(__APPLE__)
 | 
						|
 | 
						|
#include <TargetConditionals.h>
 | 
						|
 | 
						|
#if TARGET_OS_IPHONE
 | 
						|
 | 
						|
#if !defined(KINC_TVOS)
 | 
						|
#define KINC_IOS
 | 
						|
#endif
 | 
						|
 | 
						|
#define KINC_APPLE_SOC
 | 
						|
 | 
						|
#else
 | 
						|
 | 
						|
#define KINC_MACOS
 | 
						|
 | 
						|
#if defined(__arm64__)
 | 
						|
#define KINC_APPLE_SOC
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#define KINC_POSIX
 | 
						|
 | 
						|
#elif defined(__linux__)
 | 
						|
 | 
						|
#if !defined(KINC_ANDROID)
 | 
						|
#define KINC_LINUX
 | 
						|
#endif
 | 
						|
 | 
						|
#define KINC_POSIX
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef KINC_WINDOWS
 | 
						|
#if defined(KINC_DYNAMIC)
 | 
						|
#define KINC_FUNC __declspec(dllimport)
 | 
						|
#elif defined(KINC_DYNAMIC_COMPILE)
 | 
						|
#define KINC_FUNC __declspec(dllexport)
 | 
						|
#else
 | 
						|
#define KINC_FUNC
 | 
						|
#endif
 | 
						|
#else
 | 
						|
#define KINC_FUNC
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
 | 
						|
namespace Kore {
 | 
						|
	typedef unsigned char u8;   // 1 Byte
 | 
						|
	typedef unsigned short u16; // 2 Byte
 | 
						|
	typedef unsigned int u32;   // 4 Byte
 | 
						|
 | 
						|
#if defined(__LP64__) || defined(_LP64) || defined(_WIN64)
 | 
						|
#define KINC_64
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef KINC_WINDOWS
 | 
						|
	typedef unsigned __int64 u64; // 8 Byte
 | 
						|
#else
 | 
						|
	typedef unsigned long long u64;
 | 
						|
#endif
 | 
						|
	typedef char s8;   // 1 Byte
 | 
						|
	typedef short s16; // 2 Byte
 | 
						|
	typedef int s32;   // 4 Byte
 | 
						|
#ifdef KINC_WINDOWS
 | 
						|
	typedef __int64 s64; // 8 Byte
 | 
						|
#else
 | 
						|
	typedef long long s64;
 | 
						|
#endif
 | 
						|
 | 
						|
	typedef u32 uint; // 4 Byte
 | 
						|
	typedef s32 sint; // 4 Byte
 | 
						|
 | 
						|
#ifdef KINC_64
 | 
						|
	typedef s64 spint;
 | 
						|
	typedef u64 upint;
 | 
						|
#else
 | 
						|
	typedef s32 spint;
 | 
						|
	typedef u32 upint;
 | 
						|
#endif
 | 
						|
}
 | 
						|
 | 
						|
// pseudo C++11
 | 
						|
#if !defined(_MSC_VER) && __cplusplus <= 199711L
 | 
						|
#define nullptr 0
 | 
						|
#define override
 | 
						|
#endif
 | 
						|
 | 
						|
#define Noexcept throw()
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
int kickstart(int argc, char **argv);
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 |