Flecs v3.1
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
decl.hpp
Go to the documentation of this file.
1
6#pragma once
7
8namespace flecs {
9
18/* Primitive type aliases */
19using bool_t = ecs_bool_t;
20using char_t = ecs_char_t;
21using u8_t = ecs_u8_t;
22using u16_t = ecs_u16_t;
23using u32_t = ecs_u32_t;
24using u64_t = ecs_u64_t;
25using uptr_t = ecs_uptr_t;
26using i8_t = ecs_i8_t;
27using i16_t = ecs_i16_t;
28using i32_t = ecs_i32_t;
29using i64_t = ecs_i64_t;
30using iptr_t = ecs_iptr_t;
31using f32_t = ecs_f32_t;
32using f64_t = ecs_f64_t;
33
34/* Embedded type aliases */
35using member_t = ecs_member_t;
36using enum_constant_t = ecs_enum_constant_t;
37using bitmask_constant_t = ecs_bitmask_constant_t;
38
39/* Components */
40using MetaType = EcsMetaType;
41using MetaTypeSerialized = EcsMetaTypeSerialized;
42using Primitive = EcsPrimitive;
43using Enum = EcsEnum;
44using Bitmask = EcsBitmask;
45using Member = EcsMember;
46using Struct = EcsStruct;
47using Array = EcsArray;
48using Vector = EcsVector;
49using Unit = EcsUnit;
50
52struct bitmask {
53 uint32_t value;
54};
55
56/* Handles to builtin reflection types */
57static const flecs::entity_t Bool = ecs_id(ecs_bool_t);
58static const flecs::entity_t Char = ecs_id(ecs_char_t);
59static const flecs::entity_t Byte = ecs_id(ecs_byte_t);
60static const flecs::entity_t U8 = ecs_id(ecs_u8_t);
61static const flecs::entity_t U16 = ecs_id(ecs_u16_t);
62static const flecs::entity_t U32 = ecs_id(ecs_u32_t);
63static const flecs::entity_t U64 = ecs_id(ecs_u64_t);
64static const flecs::entity_t Uptr = ecs_id(ecs_uptr_t);
65static const flecs::entity_t I8 = ecs_id(ecs_i8_t);
66static const flecs::entity_t I16 = ecs_id(ecs_i16_t);
67static const flecs::entity_t I32 = ecs_id(ecs_i32_t);
68static const flecs::entity_t I64 = ecs_id(ecs_i64_t);
69static const flecs::entity_t Iptr = ecs_id(ecs_iptr_t);
70static const flecs::entity_t F32 = ecs_id(ecs_f32_t);
71static const flecs::entity_t F64 = ecs_id(ecs_f64_t);
72static const flecs::entity_t String = ecs_id(ecs_string_t);
73static const flecs::entity_t Entity = ecs_id(ecs_entity_t);
74static const flecs::entity_t Constant = EcsConstant;
75static const flecs::entity_t Quantity = EcsQuantity;
76
77namespace meta {
78
79/* Type kinds supported by reflection system */
80using type_kind_t = ecs_type_kind_t;
81static const type_kind_t PrimitiveType = EcsPrimitiveType;
82static const type_kind_t BitmaskType = EcsBitmaskType;
83static const type_kind_t EnumType = EcsEnumType;
84static const type_kind_t StructType = EcsStructType;
85static const type_kind_t ArrayType = EcsArrayType;
86static const type_kind_t VectorType = EcsVectorType;
87static const type_kind_t CustomType = EcsOpaqueType;
88static const type_kind_t TypeKindLast = EcsTypeKindLast;
89
90/* Primitive type kinds supported by reflection system */
91using primitive_kind_t = ecs_primitive_kind_t;
92static const primitive_kind_t Bool = EcsBool;
93static const primitive_kind_t Char = EcsChar;
94static const primitive_kind_t Byte = EcsByte;
95static const primitive_kind_t U8 = EcsU8;
96static const primitive_kind_t U16 = EcsU16;
97static const primitive_kind_t U32 = EcsU32;
98static const primitive_kind_t U64 = EcsU64;
99static const primitive_kind_t I8 = EcsI8;
100static const primitive_kind_t I16 = EcsI16;
101static const primitive_kind_t I32 = EcsI32;
102static const primitive_kind_t I64 = EcsI64;
103static const primitive_kind_t F32 = EcsF32;
104static const primitive_kind_t F64 = EcsF64;
105static const primitive_kind_t UPtr = EcsUPtr;
106static const primitive_kind_t IPtr = EcsIPtr;
107static const primitive_kind_t String = EcsString;
108static const primitive_kind_t Entity = EcsEntity;
109static const primitive_kind_t PrimitiveKindLast = EcsPrimitiveKindLast;
110
113namespace _ {
114
115void init(flecs::world& world);
116
117} // namespace _
118} // namespace meta
119} // namespace flecs
120
121#include "cursor.hpp"
122#include "opaque.hpp"
bool ecs_bool_t
Primitive type definitions.
Definition: meta.h:87
ecs_type_kind_t
Type kinds supported by reflection type system.
Definition: meta.h:140
ecs_id_t ecs_entity_t
An entity identifier.
Definition: flecs.h:219
Helpers for opaque type registration.
Definition: meta.h:248
Definition: meta.h:227
Component that is automatically added to every type with the right kind.
Definition: meta.h:152
Definition: meta.h:407
Element type of members vector in EcsStruct.
Definition: meta.h:193
Base type for bitmasks.
Definition: decl.hpp:52
The world.
Definition: world.hpp:113