Flecs v4.0
A fast entity component system (ECS) for C & C++
|
Classes | |
struct | ecs_entities_t |
Type returned by ecs_get_entities(). More... | |
Typedefs | |
typedef struct ecs_entities_t | ecs_entities_t |
Type returned by ecs_get_entities(). | |
Functions | |
ecs_world_t * | ecs_init (void) |
Create a new world. | |
ecs_world_t * | ecs_mini (void) |
Create a new world with just the core module. | |
ecs_world_t * | ecs_init_w_args (int argc, char *argv[]) |
Create a new world with arguments. | |
int | ecs_fini (ecs_world_t *world) |
Delete a world. | |
bool | ecs_is_fini (const ecs_world_t *world) |
Returns whether the world is being deleted. | |
void | ecs_atfini (ecs_world_t *world, ecs_fini_action_t action, void *ctx) |
Register action to be executed when world is destroyed. | |
ecs_entities_t | ecs_get_entities (const ecs_world_t *world) |
Return entity identifiers in world. | |
void ecs_atfini | ( | ecs_world_t * | world, |
ecs_fini_action_t | action, | ||
void * | ctx ) |
Register action to be executed when world is destroyed.
Fini actions are typically used when a module needs to clean up before a world shuts down.
world | The world. |
action | The function to execute. |
ctx | Userdata to pass to the function |
int ecs_fini | ( | ecs_world_t * | world | ) |
Delete a world.
This operation deletes the world, and everything it contains.
world | The world to delete. |
ecs_entities_t ecs_get_entities | ( | const ecs_world_t * | world | ) |
Return entity identifiers in world.
This operation returns an array with all entity ids that exist in the world. Note that the returned array will change and may get invalidated as a result of entity creation & deletion.
To iterate all alive entity ids, do:
To iterate not-alive ids, do:
The returned array does not need to be freed. Mutating the returned array will return in undefined behavior (and likely crashes).
world | The world. |
ecs_world_t * ecs_init | ( | void | ) |
Create a new world.
This operation automatically imports modules from addons Flecs has been built with, except when the module specifies otherwise.
ecs_world_t * ecs_init_w_args | ( | int | argc, |
char * | argv[] ) |
Create a new world with arguments.
Same as ecs_init(), but allows passing in command line arguments. Command line arguments are used to:
bool ecs_is_fini | ( | const ecs_world_t * | world | ) |
Returns whether the world is being deleted.
This operation can be used in callbacks like type hooks or observers to detect if they are invoked while the world is being deleted.
world | The world. |
ecs_world_t * ecs_mini | ( | void | ) |
Create a new world with just the core module.
Same as ecs_init(), but doesn't import modules from addons. This operation is faster than ecs_init() and results in less memory utilization.