Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
meta_c.h File Reference

Utility macros for populating reflection data in C. More...

Go to the source code of this file.

Macros

#define FLECS_META_C_H
 
#define ECS_META_COMPONENT(world, name)
 Declare component with descriptor.
 
#define ECS_STRUCT(name, ...)
 ECS_STRUCT(name, body)
 
#define ECS_ENUM(name, ...)
 ECS_ENUM(name, body)
 
#define ECS_BITMASK(name, ...)
 ECS_BITMASK(name, body)
 
#define ECS_PRIVATE
 Macro used to mark part of type for which no reflection data is created.
 
#define ECS_META_IMPL_CALL_INNER(base, impl, name, type_desc)    base ## impl(name, type_desc)
 
#define ECS_META_IMPL_CALL(base, impl, name, type_desc)    ECS_META_IMPL_CALL_INNER(base, impl, name, type_desc)
 
#define ECS_STRUCT_TYPE(name, ...)    typedef struct __VA_ARGS__ name
 
#define ECS_STRUCT_ECS_META_IMPL   ECS_STRUCT_IMPL
 
#define ECS_STRUCT_IMPL(name, type_desc)
 
#define ECS_STRUCT_DECLARE(name, type_desc)
 
#define ECS_STRUCT_EXTERN(name, type_desc)    extern ECS_COMPONENT_DECLARE(name)
 
#define ECS_ENUM_TYPE(name, ...)    typedef enum __VA_ARGS__ name
 
#define ECS_ENUM_ECS_META_IMPL   ECS_ENUM_IMPL
 
#define ECS_ENUM_IMPL(name, type_desc)
 
#define ECS_ENUM_DECLARE(name, type_desc)
 
#define ECS_ENUM_EXTERN(name, type_desc)    extern ECS_COMPONENT_DECLARE(name)
 
#define ECS_BITMASK_TYPE(name, ...)    typedef enum __VA_ARGS__ name
 
#define ECS_BITMASK_ECS_META_IMPL   ECS_BITMASK_IMPL
 
#define ECS_BITMASK_IMPL(name, type_desc)
 
#define ECS_BITMASK_DECLARE(name, type_desc)
 
#define ECS_BITMASK_EXTERN(name, type_desc)    extern ECS_COMPONENT_DECLARE(name)
 

Functions

FLECS_API int ecs_meta_from_desc (ecs_world_t *world, ecs_entity_t component, ecs_type_kind_t kind, const char *desc)
 Populate meta information from type descriptor.
 

Detailed Description

Utility macros for populating reflection data in C.

Definition in file meta_c.h.