Flecs: API defines
Description: A fast entity component system (ECS) for C & C++

| Flecs v4.0 A fast entity component system (ECS) for C & C++

Loading...
Searching...
No Matches
Macros
API defines
C API » Core

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 (12)
| 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 (12)

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(\
FLECS_VERSION_MAJOR, FLECS_VERSION_MINOR, FLECS_VERSION_PATCH)
FLECS_VERSION_PATCH
#define FLECS_VERSION_PATCH
Flecs patch version.
Definition flecs.h:36
FLECS_VERSION_MAJOR
#define FLECS_VERSION_MAJOR
Flecs major version.
Definition flecs.h:34
FLECS_VERSION_MINOR
#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.