![]() |
Gaia-ECS v0.9.3
A simple and powerful entity component system
|
Plain component registration descriptor shared by typed and runtime component paths. Typed registration produces this descriptor from detail::ComponentDesc, while runtime registration can fill it from data loaded at runtime. More...
#include <component_desc.h>
Public Types | |
| using | FuncCtor = void(void *, uint32_t) |
| using | FuncDtor = void(void *, uint32_t) |
| using | FuncFrom = void(void *, void *, uint32_t, uint32_t, uint32_t, uint32_t) |
| using | FuncCopy = void(void *, const void *, uint32_t, uint32_t, uint32_t, uint32_t) |
| using | FuncMove = void(void *, void *, uint32_t, uint32_t, uint32_t, uint32_t) |
| using | FuncSwap = void(void *, void *, uint32_t, uint32_t, uint32_t, uint32_t) |
| using | FuncCmp = bool(const void *, const void *) |
| using | FuncSave = void(ser::serializer &, const void *, uint32_t, uint32_t, uint32_t) |
| using | FuncLoad = void(ser::serializer &, void *, uint32_t, uint32_t, uint32_t) |
Public Attributes | |
| util::str_view | name |
| Registered component symbol. | |
| uint32_t | size = 0 |
| Component payload size in bytes. | |
| uint32_t | alig = 0 |
| Component payload alignment in bytes. | |
| DataStorageType | storageType = DataStorageType::Table |
| Component storage mode. | |
| uint32_t | soa = 0 |
| Number of SoA elements, 0 means AoS. | |
| const uint8_t * | pSoaSizes = nullptr |
| Per-element SoA sizes when soa is non-zero. | |
| ComponentLookupHash | hashLookup {} |
| Optional explicit lookup hash. When empty, the symbol hash is used. | |
| RuntimeTypeKind | typeKind = RuntimeTypeKind::Struct |
| Runtime reflection type kind. | |
| RuntimePrimitiveKind | primitiveKind = RuntimePrimitiveKind::None |
| Runtime primitive kind. Only valid when typeKind is Primitive. | |
| FuncCtor * | funcCtor = nullptr |
| Optional lifecycle and serialization callbacks. | |
| FuncMove * | funcMoveCtor = nullptr |
| FuncCopy * | funcCopyCtor = nullptr |
| FuncDtor * | funcDtor = nullptr |
| FuncCopy * | funcCopy = nullptr |
| FuncMove * | funcMove = nullptr |
| FuncSwap * | funcSwap = nullptr |
| FuncCmp * | funcCmp = nullptr |
| FuncSave * | funcSave = nullptr |
| FuncLoad * | funcLoad = nullptr |
Plain component registration descriptor shared by typed and runtime component paths. Typed registration produces this descriptor from detail::ComponentDesc, while runtime registration can fill it from data loaded at runtime.