Macro utilities to automatically insert reflection data.
More...
|
#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) |
|
Macro utilities to automatically insert reflection data.
◆ ECS_BITMASK
#define ECS_BITMASK |
( |
| name, |
|
|
| ... ) |
Value: ECS_META_IMPL_CALL(ECS_BITMASK_, ECS_META_IMPL, name, #__VA_ARGS__);\
ECS_ENUM_TYPE(name, __VA_ARGS__)
ECS_BITMASK(name, body)
Definition at line 64 of file meta_c.h.
◆ ECS_BITMASK_DECLARE
#define ECS_BITMASK_DECLARE |
( |
| name, |
|
|
| type_desc ) |
Value:
ECS_COMPONENT_DECLARE(name) = 0
#define ECS_COMPONENT_DECLARE(id)
Forward declare a component.
Definition at line 141 of file meta_c.h.
◆ ECS_BITMASK_ECS_META_IMPL
#define ECS_BITMASK_ECS_META_IMPL ECS_BITMASK_IMPL |
◆ ECS_BITMASK_EXTERN
◆ ECS_BITMASK_IMPL
#define ECS_BITMASK_IMPL |
( |
| name, |
|
|
| type_desc ) |
Value:
static const char *FLECS__##name##_desc = type_desc;\
ECS_COMPONENT_DECLARE(name) = 0
Definition at line 135 of file meta_c.h.
◆ ECS_BITMASK_TYPE
#define ECS_BITMASK_TYPE |
( |
| name, |
|
|
| ... ) typedef enum __VA_ARGS__ name |
◆ ECS_ENUM
#define ECS_ENUM |
( |
| name, |
|
|
| ... ) |
Value: ECS_META_IMPL_CALL(ECS_ENUM_, ECS_META_IMPL, name, #__VA_ARGS__);\
ECS_ENUM_TYPE(name, __VA_ARGS__)
ECS_ENUM(name, body)
Definition at line 59 of file meta_c.h.
◆ ECS_ENUM_DECLARE
#define ECS_ENUM_DECLARE |
( |
| name, |
|
|
| type_desc ) |
Value:
ECS_COMPONENT_DECLARE(name) = 0
Definition at line 121 of file meta_c.h.
◆ ECS_ENUM_ECS_META_IMPL
#define ECS_ENUM_ECS_META_IMPL ECS_ENUM_IMPL |
◆ ECS_ENUM_EXTERN
◆ ECS_ENUM_IMPL
#define ECS_ENUM_IMPL |
( |
| name, |
|
|
| type_desc ) |
Value:
static const char *FLECS__##name##_desc = type_desc;\
ECS_COMPONENT_DECLARE(name) = 0
Definition at line 115 of file meta_c.h.
◆ ECS_ENUM_TYPE
#define ECS_ENUM_TYPE |
( |
| name, |
|
|
| ... ) typedef enum __VA_ARGS__ name |
◆ ECS_META_COMPONENT
#define ECS_META_COMPONENT |
( |
| world, |
|
|
| name ) |
Value:
ecs_meta_from_desc(world, ecs_id(name),\
FLECS__##name##_kind, FLECS__##name##_desc)
#define ECS_COMPONENT_DEFINE(world, id_)
Define a forward declared component.
Declare component with descriptor.
Definition at line 48 of file meta_c.h.
◆ ECS_META_IMPL_CALL
#define ECS_META_IMPL_CALL |
( |
| base, |
|
|
| impl, |
|
|
| name, |
|
|
| type_desc ) ECS_META_IMPL_CALL_INNER(base, impl, name, type_desc) |
◆ ECS_META_IMPL_CALL_INNER
#define ECS_META_IMPL_CALL_INNER |
( |
| base, |
|
|
| impl, |
|
|
| name, |
|
|
| type_desc ) base ## impl(name, type_desc) |
◆ ECS_PRIVATE
Macro used to mark part of type for which no reflection data is created.
Definition at line 69 of file meta_c.h.
◆ ECS_STRUCT
#define ECS_STRUCT |
( |
| name, |
|
|
| ... ) |
Value: ECS_META_IMPL_CALL(ECS_STRUCT_, ECS_META_IMPL, name, #__VA_ARGS__);\
ECS_STRUCT_TYPE(name, __VA_ARGS__)
ECS_STRUCT(name, body)
Definition at line 54 of file meta_c.h.
◆ ECS_STRUCT_DECLARE
#define ECS_STRUCT_DECLARE |
( |
| name, |
|
|
| type_desc ) |
Value:
ECS_COMPONENT_DECLARE(name) = 0
Definition at line 101 of file meta_c.h.
◆ ECS_STRUCT_ECS_META_IMPL
#define ECS_STRUCT_ECS_META_IMPL ECS_STRUCT_IMPL |
◆ ECS_STRUCT_EXTERN
◆ ECS_STRUCT_IMPL
#define ECS_STRUCT_IMPL |
( |
| name, |
|
|
| type_desc ) |
Value:
static const char *FLECS__##name##_desc = type_desc;\
ECS_COMPONENT_DECLARE(name) = 0
Definition at line 95 of file meta_c.h.
◆ ECS_STRUCT_TYPE
#define ECS_STRUCT_TYPE |
( |
| name, |
|
|
| ... ) typedef struct __VA_ARGS__ name |
◆ FLECS_META_C_H