Flecs v4.0
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
API defines

Defines for customizing compile time features. More...

Collaboration diagram for API defines:

Macros

#define FLECS_VERSION_MAJOR   4
 Flecs major version.
 
#define FLECS_VERSION_MINOR   0
 Flecs minor version.
 
#define FLECS_VERSION_PATCH   3
 Flecs patch version.
 
#define FLECS_VERSION
 Flecs version.
 
#define ecs_float_t   float
 Customizable precision for floating point operations.
 
#define ecs_ftime_t   ecs_float_t
 Customizable precision for scalar time values.
 
#define FLECS_DEBUG
 Used for input parameter checking and cheap sanity checks.
 
#define FLECS_CPP
 C++ API.
 
#define FLECS_MODULE
 Module support.
 
#define FLECS_SCRIPT
 ECS data definition format.
 
#define FLECS_STATS
 Track runtime statistics.
 
#define FLECS_METRICS
 Expose component data as statistics.
 
#define FLECS_ALERTS
 Monitor conditions for errors.
 
#define FLECS_SYSTEM
 System support.
 
#define FLECS_PIPELINE
 Pipeline support.
 
#define FLECS_TIMER
 Timer support.
 
#define FLECS_META
 Reflection support.
 
#define FLECS_UNITS
 Builtin standard units.
 
#define FLECS_JSON
 Parsing JSON to/from component values.
 
#define FLECS_DOC
 Document entities & components.
 
#define FLECS_LOG
 When enabled ECS provides more detailed logs.
 
#define FLECS_APP
 Application addon.
 
#define FLECS_OS_API_IMPL
 Default implementation for OS API.
 
#define FLECS_HTTP
 Tiny HTTP server for connecting to remote UI.
 
#define FLECS_REST
 REST API for querying application data.
 
#define FLECS_HI_COMPONENT_ID   (256)
 This constant can be used to balance between performance and memory utilization.
 
#define FLECS_HI_ID_RECORD_ID   (1024)
 This constant can be used to balance between performance and memory utilization.
 
#define FLECS_SPARSE_PAGE_BITS   (6)
 This constant is used to determine the number of bits of an id that is used to determine the page index when used with a sparse set.
 
#define FLECS_ENTITY_PAGE_BITS   (12)
 Same as FLECS_SPARSE_PAGE_BITS, but for the entity index.
 
#define FLECS_ID_DESC_MAX   (32)
 Maximum number of ids to add ecs_entity_desc_t / ecs_bulk_desc_t.
 
#define FLECS_EVENT_DESC_MAX   (8)
 Maximum number of events in ecs_observer_desc_t.
 
#define FLECS_VARIABLE_COUNT_MAX   (64)
 Maximum number of query variables per query.
 
#define FLECS_TERM_COUNT_MAX   32
 Maximum number of terms in queries.
 
#define FLECS_TERM_ARG_COUNT_MAX   (16)
 Maximum number of arguments for a term.
 
#define FLECS_QUERY_VARIABLE_COUNT_MAX   (64)
 Maximum number of query variables per query.
 
#define FLECS_QUERY_SCOPE_NESTING_MAX   (8)
 Maximum nesting depth of query scopes.
 

Detailed Description

Defines for customizing compile time features.

Macro Definition Documentation

◆ ecs_float_t

#define ecs_float_t   float

Customizable precision for floating point operations.

Definition at line 52 of file flecs.h.

◆ ecs_ftime_t

#define ecs_ftime_t   ecs_float_t

Customizable precision for scalar time values.

Change to double precision for processes that can run for a long time (e.g. longer than a day).

Definition at line 59 of file flecs.h.

◆ FLECS_ALERTS

#define FLECS_ALERTS

Monitor conditions for errors.

Definition at line 193 of file flecs.h.

◆ FLECS_APP

#define FLECS_APP

Application addon.

Definition at line 202 of file flecs.h.

◆ FLECS_CPP

#define FLECS_CPP

C++ API.

Definition at line 188 of file flecs.h.

◆ FLECS_DEBUG

#define FLECS_DEBUG

Used for input parameter checking and cheap sanity checks.

There are lots of asserts in every part of the code, so this will slow down applications.

Definition at line 97 of file flecs.h.

◆ FLECS_DOC

#define FLECS_DOC

Document entities & components.

Definition at line 200 of file flecs.h.

◆ FLECS_ENTITY_PAGE_BITS

#define FLECS_ENTITY_PAGE_BITS   (12)

Same as FLECS_SPARSE_PAGE_BITS, but for the entity index.

Definition at line 258 of file flecs.h.

◆ FLECS_EVENT_DESC_MAX

#define FLECS_EVENT_DESC_MAX   (8)

Maximum number of events in ecs_observer_desc_t.

Definition at line 276 of file flecs.h.

◆ FLECS_HI_COMPONENT_ID

#define FLECS_HI_COMPONENT_ID   (256)

This constant can be used to balance between performance and memory utilization.

The constant is used in two ways:

  • Entity ids 0..FLECS_HI_COMPONENT_ID are reserved for component ids.
  • Used as lookup array size in table edges.

Increasing this value increases the size of the lookup array, which allows fast table traversal, which improves performance of ECS add/remove operations. Component ids that fall outside of this range use a regular map lookup, which is slower but more memory efficient.

Definition at line 233 of file flecs.h.

◆ FLECS_HI_ID_RECORD_ID

#define FLECS_HI_ID_RECORD_ID   (1024)

This constant can be used to balance between performance and memory utilization.

The constant is used to determine the size of the id record lookup array. Id values that fall outside of this range use a regular map lookup, which is slower but more memory efficient.

Definition at line 243 of file flecs.h.

◆ FLECS_HTTP

#define FLECS_HTTP

Tiny HTTP server for connecting to remote UI.

Definition at line 204 of file flecs.h.

◆ FLECS_ID_DESC_MAX

#define FLECS_ID_DESC_MAX   (32)

Maximum number of ids to add ecs_entity_desc_t / ecs_bulk_desc_t.

Definition at line 270 of file flecs.h.

◆ FLECS_JSON

#define FLECS_JSON

Parsing JSON to/from component values.

Definition at line 199 of file flecs.h.

◆ FLECS_LOG

#define FLECS_LOG

When enabled ECS provides more detailed logs.

Definition at line 201 of file flecs.h.

◆ FLECS_META

#define FLECS_META

Reflection support.

Definition at line 197 of file flecs.h.

◆ FLECS_METRICS

#define FLECS_METRICS

Expose component data as statistics.

Definition at line 192 of file flecs.h.

◆ FLECS_MODULE

#define FLECS_MODULE

Module support.

Definition at line 189 of file flecs.h.

◆ FLECS_OS_API_IMPL

#define FLECS_OS_API_IMPL

Default implementation for OS API.

Definition at line 203 of file flecs.h.

◆ FLECS_PIPELINE

#define FLECS_PIPELINE

Pipeline support.

Definition at line 195 of file flecs.h.

◆ FLECS_QUERY_SCOPE_NESTING_MAX

#define FLECS_QUERY_SCOPE_NESTING_MAX   (8)

Maximum nesting depth of query scopes.

Definition at line 304 of file flecs.h.

◆ FLECS_QUERY_VARIABLE_COUNT_MAX

#define FLECS_QUERY_VARIABLE_COUNT_MAX   (64)

Maximum number of query variables per query.

Should not exceed 128.

Definition at line 298 of file flecs.h.

◆ FLECS_REST

#define FLECS_REST

REST API for querying application data.

Definition at line 205 of file flecs.h.

◆ FLECS_SCRIPT

#define FLECS_SCRIPT

ECS data definition format.

Definition at line 190 of file flecs.h.

◆ FLECS_SPARSE_PAGE_BITS

#define FLECS_SPARSE_PAGE_BITS   (6)

This constant is used to determine the number of bits of an id that is used to determine the page index when used with a sparse set.

The number of bits determines the page size, which is (1 << bits). Lower values decrease memory utilization, at the cost of more allocations.

Definition at line 252 of file flecs.h.

◆ FLECS_STATS

#define FLECS_STATS

Track runtime statistics.

Definition at line 191 of file flecs.h.

◆ FLECS_SYSTEM

#define FLECS_SYSTEM

System support.

Definition at line 194 of file flecs.h.

◆ FLECS_TERM_ARG_COUNT_MAX

#define FLECS_TERM_ARG_COUNT_MAX   (16)

Maximum number of arguments for a term.

Definition at line 292 of file flecs.h.

◆ FLECS_TERM_COUNT_MAX

#define FLECS_TERM_COUNT_MAX   32

Maximum number of terms in queries.

Should not exceed 64.

Definition at line 286 of file flecs.h.

◆ FLECS_TIMER

#define FLECS_TIMER

Timer support.

Definition at line 196 of file flecs.h.

◆ FLECS_UNITS

#define FLECS_UNITS

Builtin standard units.

Definition at line 198 of file flecs.h.

◆ FLECS_VARIABLE_COUNT_MAX

#define FLECS_VARIABLE_COUNT_MAX   (64)

Maximum number of query variables per query.

Definition at line 281 of file flecs.h.

◆ FLECS_VERSION

#define FLECS_VERSION
Value:
FLECS_VERSION_IMPL(\
#define FLECS_VERSION_PATCH
Flecs patch version.
Definition flecs.h:36
#define FLECS_VERSION_MAJOR
Flecs major version.
Definition flecs.h:34
#define FLECS_VERSION_MINOR
Flecs minor version.
Definition flecs.h:35

Flecs version.

Definition at line 39 of file flecs.h.

◆ FLECS_VERSION_MAJOR

#define FLECS_VERSION_MAJOR   4

Flecs major version.

Definition at line 34 of file flecs.h.

◆ FLECS_VERSION_MINOR

#define FLECS_VERSION_MINOR   0

Flecs minor version.

Definition at line 35 of file flecs.h.

◆ FLECS_VERSION_PATCH

#define FLECS_VERSION_PATCH   3

Flecs patch version.

Definition at line 36 of file flecs.h.