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

Defines for customizing compile time features. More...

Macros

#define ecs_float_t   float
 Customizable precision for floating point operations. More...
 
#define ecs_ftime_t   ecs_float_t
 Customizable precision for scalar time values. More...
 
#define FLECS_NO_DEPRECATED_WARNINGS
 disables deprecated warnings More...
 
#define FLECS_DEBUG
 Used for input parameter checking and cheap sanity checks. More...
 
#define FLECS_CPP
 C++ API. More...
 
#define FLECS_MODULE
 Module support. More...
 
#define FLECS_PARSER
 String parser for queries. More...
 
#define FLECS_PLECS
 ECS data definition format. More...
 
#define FLECS_RULES
 Constraint solver for advanced queries. More...
 
#define FLECS_SNAPSHOT
 Snapshot & restore ECS data. More...
 
#define FLECS_STATS
 Access runtime statistics. More...
 
#define FLECS_MONITOR
 Track runtime statistics periodically. More...
 
#define FLECS_METRICS
 Expose component data as statistics. More...
 
#define FLECS_ALERTS
 Monitor conditions for errors. More...
 
#define FLECS_SYSTEM
 System support. More...
 
#define FLECS_PIPELINE
 Pipeline support. More...
 
#define FLECS_TIMER
 Timer support. More...
 
#define FLECS_META
 Reflection support. More...
 
#define FLECS_META_C
 Utilities for populating reflection data. More...
 
#define FLECS_UNITS
 Builtin standard units. More...
 
#define FLECS_EXPR
 Parsing strings to/from component values. More...
 
#define FLECS_JSON
 Parsing JSON to/from component values. More...
 
#define FLECS_DOC
 Document entities & components. More...
 
#define FLECS_COREDOC
 Documentation for core entities & components. More...
 
#define FLECS_LOG
 When enabled ECS provides more detailed logs. More...
 
#define FLECS_APP
 Application addon. More...
 
#define FLECS_OS_API_IMPL
 Default implementation for OS API. More...
 
#define FLECS_HTTP
 Tiny HTTP server for connecting to remote UI. More...
 
#define FLECS_REST
 REST API for querying application data. More...
 
#define FLECS_HI_COMPONENT_ID   (256)
 This constant can be used to balance between performance and memory utilization. More...
 
#define FLECS_HI_ID_RECORD_ID   (1024)
 This constant can be used to balance between performance and memory utilization. More...
 
#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. More...
 
#define FLECS_ENTITY_PAGE_BITS   (12)
 Same as FLECS_SPARSE_PAGE_BITS, but for the entity index. More...
 
#define FLECS_ID_DESC_MAX   (32)
 Maximum number of ids to add ecs_entity_desc_t / ecs_bulk_desc_t. More...
 
#define FLECS_TERM_DESC_MAX   (16)
 Maximum number of terms in ecs_filter_desc_t. More...
 
#define FLECS_EVENT_DESC_MAX   (8)
 Maximum number of events in ecs_observer_desc_t. More...
 
#define FLECS_VARIABLE_COUNT_MAX   (64)
 Maximum number of query variables per query. More...
 
#define FLECS_QUERY_SCOPE_NESTING_MAX   (8)
 Maximum nesting depth of query scopes. More...
 

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 35 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 42 of file flecs.h.

◆ FLECS_ALERTS

#define FLECS_ALERTS

Monitor conditions for errors.

Definition at line 152 of file flecs.h.

◆ FLECS_APP

#define FLECS_APP

Application addon.

Definition at line 164 of file flecs.h.

◆ FLECS_COREDOC

#define FLECS_COREDOC

Documentation for core entities & components.

Definition at line 162 of file flecs.h.

◆ FLECS_CPP

#define FLECS_CPP

C++ API.

Definition at line 143 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 78 of file flecs.h.

◆ FLECS_DOC

#define FLECS_DOC

Document entities & components.

Definition at line 161 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 219 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 240 of file flecs.h.

◆ FLECS_EXPR

#define FLECS_EXPR

Parsing strings to/from component values.

Definition at line 159 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 194 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 204 of file flecs.h.

◆ FLECS_HTTP

#define FLECS_HTTP

Tiny HTTP server for connecting to remote UI.

Definition at line 166 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 231 of file flecs.h.

◆ FLECS_JSON

#define FLECS_JSON

Parsing JSON to/from component values.

Definition at line 160 of file flecs.h.

◆ FLECS_LOG

#define FLECS_LOG

When enabled ECS provides more detailed logs.

Definition at line 163 of file flecs.h.

◆ FLECS_META

#define FLECS_META

Reflection support.

Definition at line 156 of file flecs.h.

◆ FLECS_META_C

#define FLECS_META_C

Utilities for populating reflection data.

Definition at line 157 of file flecs.h.

◆ FLECS_METRICS

#define FLECS_METRICS

Expose component data as statistics.

Definition at line 151 of file flecs.h.

◆ FLECS_MODULE

#define FLECS_MODULE

Module support.

Definition at line 144 of file flecs.h.

◆ FLECS_MONITOR

#define FLECS_MONITOR

Track runtime statistics periodically.

Definition at line 150 of file flecs.h.

◆ FLECS_NO_DEPRECATED_WARNINGS

#define FLECS_NO_DEPRECATED_WARNINGS

disables deprecated warnings

Definition at line 53 of file flecs.h.

◆ FLECS_OS_API_IMPL

#define FLECS_OS_API_IMPL

Default implementation for OS API.

Definition at line 165 of file flecs.h.

◆ FLECS_PARSER

#define FLECS_PARSER

String parser for queries.

Definition at line 145 of file flecs.h.

◆ FLECS_PIPELINE

#define FLECS_PIPELINE

Pipeline support.

Definition at line 154 of file flecs.h.

◆ FLECS_PLECS

#define FLECS_PLECS

ECS data definition format.

Definition at line 146 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 248 of file flecs.h.

◆ FLECS_REST

#define FLECS_REST

REST API for querying application data.

Definition at line 167 of file flecs.h.

◆ FLECS_RULES

#define FLECS_RULES

Constraint solver for advanced queries.

Definition at line 147 of file flecs.h.

◆ FLECS_SNAPSHOT

#define FLECS_SNAPSHOT

Snapshot & restore ECS data.

Definition at line 148 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 213 of file flecs.h.

◆ FLECS_STATS

#define FLECS_STATS

Access runtime statistics.

Definition at line 149 of file flecs.h.

◆ FLECS_SYSTEM

#define FLECS_SYSTEM

System support.

Definition at line 153 of file flecs.h.

◆ FLECS_TERM_DESC_MAX

#define FLECS_TERM_DESC_MAX   (16)

Maximum number of terms in ecs_filter_desc_t.

Definition at line 236 of file flecs.h.

◆ FLECS_TIMER

#define FLECS_TIMER

Timer support.

Definition at line 155 of file flecs.h.

◆ FLECS_UNITS

#define FLECS_UNITS

Builtin standard units.

Definition at line 158 of file flecs.h.

◆ FLECS_VARIABLE_COUNT_MAX

#define FLECS_VARIABLE_COUNT_MAX   (64)

Maximum number of query variables per query.

Definition at line 244 of file flecs.h.