Global Namespace

Overview

// namespaces

namespace EE;
    namespace EE::Audio;
    namespace EE::Graphics;
    namespace EE::Math;
        namespace EE::Math::easing;
    namespace EE::Network;
        namespace EE::Network::SSL;
    namespace EE::Scene;
        namespace EE::Scene::Actions;
    namespace EE::System;
    namespace EE::UI;
        namespace EE::UI::Abstract;
        namespace EE::UI::CSS;
        namespace EE::UI::Doc;
        namespace EE::UI::LayoutInvalidation;
        namespace EE::UI::Models;
        namespace EE::UI::Tools;
    namespace EE::Window;
namespace literals;
namespace std;

// global functions

template <typename... T>
std::size_t hashCombine(std::size_t h1, std::size_t h2, T... other);

// macros

#define AXIS_MAX
#define AXIS_MIN
#define EEPP_CODENAME
#define EEPP_COMPILEDVERSION
#define EEPP_MAJOR_VERSION
#define EEPP_MINOR_VERSION
#define EEPP_PATCH_LEVEL
#define EEPP_VERSION(x)
#define EEPP_VERSIONNUM(X, Y, Z)
#define EEPP_VERSION_ATLEAST(X, Y, Z)
#define EE_180_PI
#define EE_1B
#define EE_1GB
#define EE_1KB
#define EE_1MB
#define EE_1TB
#define EE_360_PI
#define EE_API
#define EE_APPACTIVE
#define EE_APPINPUTFOCUS
#define EE_APPMOUSEFOCUS
#define EE_BACKEND_SDL_ACTIVE
#define EE_BIG_ENDIAN
#define EE_BUTTON_MASK(X)
#define EE_DEBUG
#define EE_ENDIAN
#define EE_KEYS_NUM
#define EE_KEYS_SPACE
#define EE_LITTLE_ENDIAN
#define EE_MAIN_FUNC
#define EE_MAX_FINGERS
#define EE_MAX_PLANES
#define EE_MAX_TEXTURE_UNITS
#define EE_PI
#define EE_PI2
#define EE_PI_180
#define EE_PI_360
#define EE_PLATFORM_ANDROID
#define EE_PLATFORM_BSD
#define EE_PLATFORM_EMSCRIPTEN
#define EE_PLATFORM_HAIKU
#define EE_PLATFORM_IOS
#define EE_PLATFORM_LINUX
#define EE_PLATFORM_MACOS
#define EE_PLATFORM_SOLARIS
#define EE_PLATFORM_WIN
#define EE_SCREEN_KEYBOARD_ENABLED
#define EE_SHADERS_SUPPORTED
#define EE_SUPPORT_EXCEPTIONS
#define EE_TAG(c1, c2, c3, c4)
#define EE_TAG_NONE
#define EE_TEXTURE_ATLAS_EXTENSION
#define EE_TEXTURE_ATLAS_MAGIC
#define EE_TEXT_INPUT_SIZE
#define GL_ARRAY_BUFFER
#define GL_COLOR_ATTACHMENT0
#define GL_COMPILE_STATUS
#define GL_COMPRESSED_RGBA
#define GL_COORD_REPLACE
#define GL_DEPTH_ATTACHMENT
#define GL_DRAW_FRAMEBUFFER
#define GL_DYNAMIC_DRAW
#define GL_ELEMENT_ARRAY_BUFFER
#define GL_FP
#define GL_FRAGMENT_SHADER
#define GL_FRAMEBUFFER
#define GL_FRAMEBUFFER_BINDING
#define GL_FRAMEBUFFER_COMPLETE
#define GL_FUNC_ADD
#define GL_FUNC_REVERSE_SUBTRACT
#define GL_FUNC_SUBTRACT
#define GL_INFO_LOG_LENGTH
#define GL_LINK_STATUS
#define GL_MULTISAMPLE
#define GL_NUM_EXTENSIONS
#define GL_POINT_SPRITE
#define GL_READ_FRAMEBUFFER
#define GL_RENDERBUFFER
#define GL_RENDERBUFFER_BINDING
#define GL_RGB8
#define GL_RGBA8
#define GL_SHADING_LANGUAGE_VERSION
#define GL_STATIC_DRAW
#define GL_STENCIL_ATTACHMENT
#define GL_STENCIL_INDEX8
#define GL_STREAM_DRAW
#define GL_TEXTURE0
#define GL_TEXTURE_COMPRESSED
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE
#define GL_VERTEX_ARRAY_BINDING
#define GL_VERTEX_PROGRAM_POINT_SIZE
#define GL_VERTEX_SHADER
#define HDR_HASH_SIZE
#define HDR_NAME_SIZE
#define HDR_TEXTUREREGION_FLAG_FLIPPED
#define HDR_TEXTURE_ATLAS_ALLOW_FLIPPING
#define HDR_TEXTURE_ATLAS_POW_OF_TWO
#define HDR_TEXTURE_ATLAS_REMOVE_EXTENSION
#define HDR_TEXTURE_ATLAS_SCALABLE_SVG
#define HDR_TEXTURE_ATLAS_VERSION
#define KEYMOD_ALT
#define KEYMOD_COUNT
#define KEYMOD_CTRL
#define KEYMOD_CTRL_SHIFT_ALT_META
#define KEYMOD_DEFAULT_MODIFIER
#define KEYMOD_META
#define KEYMOD_SHIFT
#define KEY_SCANCODE_MASK
#define MAX_JOYSTICKS
#define MAX_SUB_SYNTAXS
#define RETAIN_SYMBOL(symbol)
#define SCANCODE_TO_KEYCODE(X)
#define SINGLETON_DECLARE_HEADERS(T)
#define SINGLETON_DECLARE_IMPLEMENTATION(T)
#define SYNTAX_TOKENIZER_STATE_NONE
#define THREADS_AUTO
#define UI_MESSAGE_BOX_DEFAULT_FLAGS
#define VERTEX_FLAGS_COUNT
#define VERTEX_FLAGS_COUNT_ARR
#define VERTEX_FLAGS_DEFAULT
#define VERTEX_FLAGS_PRIMITIVE
#define VERTEX_FLAG_GET(X)
#define VERTEX_FLAG_QUERY(F, X)
#define VERTEX_FLAG_SET(F, X)
#define _RETAIN_SYMBOL_CONCAT(a, b)
#define _RETAIN_SYMBOL_CONCAT_INNER(a, b)
#define _RETAIN_SYMBOL_UNIQUE_NAME(base)
#define eeARRAY_SIZE(__array)
#define eeASSERT(expr)
#define eeASSERTM(expr, msg)
#define eeCOMMA
#define eeDelete(data)
#define eeDeleteArray(data)
#define eeFree(data)
#define eeINDEX_NOT_FOUND
#define eeMalloc(amount)
#define eeNew(classType, constructor)
#define eeNewArray(classType, amount)
#define eeNewInPlace(place, classType, constructor)
#define eeNewTracked(classType, constructor)
#define eeRealloc(ptr, amount)
#define eeSAFE_DELETE(p)
#define eeSAFE_DELETE_ARRAY(p)
#define eeSAFE_FREE(p)
#define eeabs
#define eeacos
#define eeatan2
#define eeceil
#define eecos
#define eeexp
#define eefloor
#define eemod
#define eepow
#define eesin
#define eesqrt
#define eetan
#define eevsnprintf(str, size, format, args)
#define likely(x)
#define unlikely(x)

Detailed Documentation

Macros

#define EEPP_VERSION(x)

The compiled version of the library

#define EE_BACKEND_SDL_ACTIVE

Since EE just use basic POSIX stuff, declare as POSIX some OS that are mostly POSIX-compliant.

Activate at least one backend for the compilation

#define GL_MULTISAMPLE

Wrap GLES2 functions.

Exclusive only when its compiling only for GLES2 Exclusive when its compiling only for GLES1

#define GL_TEXTURE0

GL2 and GL3 ( PC platform )

#define RETAIN_SYMBOL(symbol)

Registers a symbol to be retained by the linker.

Usage: RETAIN_SYMBOL(MyFunctionToKeep); // At file scope

Parameters:

symbol

The name of the function or variable to retain. Do not pass it as a string.

#define SINGLETON_DECLARE_HEADERS(T)

Internally we gonna use the macro singleton because it works with the engine compiled as dynamic libraries.

Lifecycle contract:

  • Creation is thread-safe. The first caller creates the singleton under ms_mutex, publishes it with release semantics, and later callers use an acquire-load fast path without locking.

  • Destruction and detach are teardown operations only. They must not run concurrently with instance(), existsSingleton(), or normal use of a previously returned raw pointer. The atomic only protects pointer publication; it does not protect pointee lifetime after return.

  • destroySingleton() intentionally keeps the pointer visible while T::~T() runs because several eepp teardown paths query singleton state while ms_is_shutting_down is true.

  • Expand SINGLETON_DECLARE_IMPLEMENTATION exactly once in a .cpp file. Expanding it in a header creates one internal-linkage singleton per translation unit.

#define VERTEX_FLAGS_DEFAULT

Vertex data will have position, color and texture UV.

#define VERTEX_FLAGS_PRIMITIVE

Vertex data will have position and color.

#define eesqrt

The internal floating point used on EE++.

This can help to improve compatibility with some platforms.

And helps for an easy change from single precision to double precision.