Flecs v3.1
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
Function types.

Function callback types. More...

Typedefs

typedef void(* ecs_run_action_t) (ecs_iter_t *it)
 Function prototype for runnables (systems, observers). More...
 
typedef void(* ecs_iter_action_t) (ecs_iter_t *it)
 Function prototype for iterables. More...
 
typedef void(* ecs_iter_init_action_t) (const ecs_world_t *world, const ecs_poly_t *iterable, ecs_iter_t *it, ecs_term_t *filter)
 Function prototype for creating an iterator from a poly. More...
 
typedef bool(* ecs_iter_next_action_t) (ecs_iter_t *it)
 Function prototype for iterating an iterator. More...
 
typedef void(* ecs_iter_fini_action_t) (ecs_iter_t *it)
 Function prototype for freeing an iterator. More...
 
typedef int(* ecs_order_by_action_t) (ecs_entity_t e1, const void *ptr1, ecs_entity_t e2, const void *ptr2)
 Callback used for comparing components. More...
 
typedef void(* ecs_sort_table_action_t) (ecs_world_t *world, ecs_table_t *table, ecs_entity_t *entities, void *ptr, int32_t size, int32_t lo, int32_t hi, ecs_order_by_action_t order_by)
 Callback used for sorting the entire table of components. More...
 
typedef uint64_t(* ecs_group_by_action_t) (ecs_world_t *world, ecs_table_t *table, ecs_id_t group_id, void *ctx)
 Callback used for grouping tables in a query. More...
 
typedef void *(* ecs_group_create_action_t) (ecs_world_t *world, uint64_t group_id, void *group_by_ctx)
 
typedef void(* ecs_group_delete_action_t) (ecs_world_t *world, uint64_t group_id, void *group_ctx, void *group_by_ctx)
 
typedef void(* ecs_module_action_t) (ecs_world_t *world)
 Initialization action for modules. More...
 
typedef void(* ecs_fini_action_t) (ecs_world_t *world, void *ctx)
 Action callback on world exit. More...
 
typedef void(* ecs_ctx_free_t) (void *ctx)
 Function to cleanup context data. More...
 
typedef int(* ecs_compare_action_t) (const void *ptr1, const void *ptr2)
 Callback used for sorting values. More...
 
typedef uint64_t(* ecs_hash_value_action_t) (const void *ptr)
 Callback used for hashing values. More...
 
typedef void(* ecs_xtor_t) (void *ptr, int32_t count, const ecs_type_info_t *type_info)
 Constructor/destructor callback. More...
 
typedef void(* ecs_copy_t) (void *dst_ptr, const void *src_ptr, int32_t count, const ecs_type_info_t *type_info)
 Copy is invoked when a component is copied into another component. More...
 
typedef void(* ecs_move_t) (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *type_info)
 Move is invoked when a component is moved to another component. More...
 
typedef void(* ecs_poly_dtor_t) (ecs_poly_t *poly)
 

Detailed Description

Function callback types.

Typedef Documentation

◆ ecs_compare_action_t

typedef int(* ecs_compare_action_t) (const void *ptr1, const void *ptr2)

Callback used for sorting values.

Definition at line 420 of file flecs.h.

◆ ecs_copy_t

typedef void(* ecs_copy_t) (void *dst_ptr, const void *src_ptr, int32_t count, const ecs_type_info_t *type_info)

Copy is invoked when a component is copied into another component.

Definition at line 435 of file flecs.h.

◆ ecs_ctx_free_t

typedef void(* ecs_ctx_free_t) (void *ctx)

Function to cleanup context data.

Definition at line 416 of file flecs.h.

◆ ecs_fini_action_t

typedef void(* ecs_fini_action_t) (ecs_world_t *world, void *ctx)

Action callback on world exit.

Definition at line 411 of file flecs.h.

◆ ecs_group_by_action_t

typedef uint64_t(* ecs_group_by_action_t) (ecs_world_t *world, ecs_table_t *table, ecs_id_t group_id, void *ctx)

Callback used for grouping tables in a query.

Definition at line 387 of file flecs.h.

◆ ecs_group_create_action_t

typedef void *(* ecs_group_create_action_t) (ecs_world_t *world, uint64_t group_id, void *group_by_ctx)

Definition at line 394 of file flecs.h.

◆ ecs_group_delete_action_t

typedef void(* ecs_group_delete_action_t) (ecs_world_t *world, uint64_t group_id, void *group_ctx, void *group_by_ctx)

Definition at line 400 of file flecs.h.

◆ ecs_hash_value_action_t

typedef uint64_t(* ecs_hash_value_action_t) (const void *ptr)

Callback used for hashing values.

Definition at line 425 of file flecs.h.

◆ ecs_iter_action_t

typedef void(* ecs_iter_action_t) (ecs_iter_t *it)

Function prototype for iterables.

A system may invoke a callback multiple times, typically once for each matched table.

Parameters
itThe iterator containing the data for the current match.

Definition at line 330 of file flecs.h.

◆ ecs_iter_fini_action_t

typedef void(* ecs_iter_fini_action_t) (ecs_iter_t *it)

Function prototype for freeing an iterator.

Free iterator resources.

Parameters
itThe iterator to free.

Definition at line 365 of file flecs.h.

◆ ecs_iter_init_action_t

typedef void(* ecs_iter_init_action_t) (const ecs_world_t *world, const ecs_poly_t *iterable, ecs_iter_t *it, ecs_term_t *filter)

Function prototype for creating an iterator from a poly.

Used to create iterators from poly objects with the iterable mixin. When a filter is provided, an array of two iterators must be passed to the function. This allows the mixin implementation to create a chained iterator when necessary, which requires two iterator objects.

Parameters
worldThe world or stage for which to create the iterator.
iterableAn iterable poly object.
itThe iterator to create (out parameter)
filterOptional term to filter results.

Definition at line 344 of file flecs.h.

◆ ecs_iter_next_action_t

typedef bool(* ecs_iter_next_action_t) (ecs_iter_t *it)

Function prototype for iterating an iterator.

Stored inside initialized iterators. This allows an application to * iterate an iterator without needing to know what created it.

Parameters
itThe iterator to iterate.
Returns
True if iterator has no more results, false if it does.

Definition at line 357 of file flecs.h.

◆ ecs_module_action_t

typedef void(* ecs_module_action_t) (ecs_world_t *world)

Initialization action for modules.

Definition at line 407 of file flecs.h.

◆ ecs_move_t

typedef void(* ecs_move_t) (void *dst_ptr, void *src_ptr, int32_t count, const ecs_type_info_t *type_info)

Move is invoked when a component is moved to another component.

Definition at line 442 of file flecs.h.

◆ ecs_order_by_action_t

typedef int(* ecs_order_by_action_t) (ecs_entity_t e1, const void *ptr1, ecs_entity_t e2, const void *ptr2)

Callback used for comparing components.

Definition at line 369 of file flecs.h.

◆ ecs_poly_dtor_t

typedef void(* ecs_poly_dtor_t) (ecs_poly_t *poly)

Definition at line 449 of file flecs.h.

◆ ecs_run_action_t

typedef void(* ecs_run_action_t) (ecs_iter_t *it)

Function prototype for runnables (systems, observers).

The run callback overrides the default behavior for iterating through the results of a runnable object.

The default runnable iterates the iterator, and calls an iter_action (see below) for each returned result.

Parameters
itThe iterator to be iterated by the runnable.

Definition at line 321 of file flecs.h.

◆ ecs_sort_table_action_t

typedef void(* ecs_sort_table_action_t) (ecs_world_t *world, ecs_table_t *table, ecs_entity_t *entities, void *ptr, int32_t size, int32_t lo, int32_t hi, ecs_order_by_action_t order_by)

Callback used for sorting the entire table of components.

Definition at line 376 of file flecs.h.

◆ ecs_xtor_t

typedef void(* ecs_xtor_t) (void *ptr, int32_t count, const ecs_type_info_t *type_info)

Constructor/destructor callback.

Definition at line 429 of file flecs.h.