Gaia-ECS v0.9.3
A simple and powerful entity component system
Loading...
Searching...
No Matches
gaia::ecs::ComponentDesc Struct Referencefinal

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
 

Detailed Description

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.


The documentation for this struct was generated from the following file: