Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

GeoBase.h is the top level configuration file for the Enlighten SDK.

Its most important task is to examine the compile environment (predefined macros, etc) and determine the OS and compiler settings that inform the code declarations, optimised code paths and so on.

Defines

NameDescription
__WFILE__ GEO_WIDEN(__FILE__)

Compile conversion of narrow to wide character literals.

GEO_ANDROID

Android OS.

GEO_APPLE

Apple operating system, either desktop or mobile.

GEO_ARM

32-bit ARM processor

GEO_ARM64

64-bit ARM processor

GEO_BIG_ENDIAN

Target platform stores data in little-endian format in memory.

GEO_CALL __cdecl

The library-wide calling convention.

GEO_CLANG

CLang/LLVM.

GEO_COMPILE_MESSAGE (void)0

Print out a message during compilation.

GEO_DEBUG

Compile in debug-only code.

GEO_DO_STRINGISE #X

Helper macro GEO_STRINGIZE: Converts the parameter X to a string after macro replacement on X has been performed.

GEO_GCC

gcc (version 4)

GEO_INTEL

Intel C++ Compiler 12 or later (GEO_MSVC also set)

GEO_IOS

Apple iOS.

GEO_LENGTH_STATIC_ARRAY size_t(sizeof((a))/sizeof((a)[0]))

Convenience macro to get the length of a statically declared array.

GEO_LINUX

Linux operating system, but no particular platform hardware.

GEO_LINUX_DESKTOP

Linux desktop PC.

GEO_LINUX_MOBILE

Linux mobile device.

GEO_LITTLE_ENDIAN

Target platform stores data in little-endian format in memory.

GEO_LITTLE_ENDIAN

Target platform stores data in little-endian format in memory.

GEO_LLP64

int is 32 bits, long is 32 bits, size_t is 64 bits (Windows style)

GEO_LLP64

int is 32 bits, long is 32 bits, size_t is 64 bits (Windows style)

GEO_LP64

int is 32 bits, long is 64 bits, size_t is 64 bits (Unix style)

GEO_MAKE_FOURCC ((Geo::u32)(Geo::u8)(ch0) | ((Geo::u32)(Geo::u8)(ch1) << 8) | \ ((Geo::u32)(Geo::u8)(ch2) << 16) | ((Geo::u32)(Geo::u8)(ch3) << 24 ))

Define a 'fourcc' code - a 4 byte string of chars typically used as an identifier in file format headers.

GEO_MSVC

Microsoft Visual C++ 2008 or later (or Intel C++)

GEO_MSVC

Microsoft Visual C++ 2008 or later (or Intel C++)

GEO_PROFILE

Include profiling support (very platform dependent).

GEO_PTRWIDTH_32

32-bit pointers

GEO_PTRWIDTH_64

64-bit pointers

GEO_PTRWIDTH_64

64-bit pointers

GEO_STADIA

Google Stadia.

GEO_STDCPP11

allow limited use of c++11 standard library when compiling with MSVC

GEO_STRINGISE GEO_DO_STRINGISE(X)

Helper macro GEO_STRINGIZE: Converts the parameter X to a string after macro replacement on X has been performed.

GEO_UNUSED (void)(symbol)

GEO_UNUSED can eliminate "variable not used" messages under all compilers mainly it is useful for gcc since there is no pragma to control this.

GEO_UNUSED_ATTRIBUTE __attribute__((unused))

GEO_UNUSED_ATTRIBUTE is required on private data members that are unused by the rest of the code.

GEO_VPU_NEON

ARM NEON on iOS or Android.

GEO_VPU_REF

Reference version.

GEO_VPU_REF

Reference version.

GEO_VPU_SSE

Intel SSE2 on x86/x64.

GEO_VPU_SSE

Intel SSE2 on x86/x64.

GEO_WIDE_STRINGISE GEO_JOIN(L,GEO_DO_STRINGISE(X))

Helper macro GEO_STRINGIZE: Converts the parameter X to a string after macro replacement on X has been performed.

GEO_WIDEN GEO_WIDEN2(x)

Compile conversion of narrow to wide character literals.

GEO_WIDEN2 L##x

Compile conversion of narrow to wide character literals.

GEO_WINDOWS

Windows API.

GEO_WINDOWS

Windows API.

GEO_X64

x64 architecture, but no particular platform API

GEO_X64

x64 architecture, but no particular platform API

GEO_X86

x86 architecture, but no particular platform API

NULL (void*)0

Define NULL in case no-one else does.