51 static constexpr uint32_t MAX_COMPONENTS_BITS = 5U;
53 static constexpr uint32_t MAX_COMPONENTS = 1U << MAX_COMPONENTS_BITS;
57 static constexpr uint16_t MAX_CHUNK_ENTITIES = (mem_block_size(2) - 64) /
sizeof(
Entity);
58 static constexpr uint16_t MAX_CHUNK_ENTITIES_BITS = (uint16_t)core::count_bits(MAX_CHUNK_ENTITIES);
60 static constexpr uint16_t CHUNK_LIFESPAN_BITS = 4;
62 static constexpr uint16_t MAX_CHUNK_LIFESPAN = (1 << CHUNK_LIFESPAN_BITS) - 1;
101 static inline uint32_t s_worldVersionDummy = 0;
102 ChunkHeader(): worldVersion(s_worldVersionDummy) {}
105 const World& wld,
const ComponentCache& compCache, uint32_t chunkIndex, uint16_t cap, uint8_t genEntitiesCnt,
107 world(&wld), cc(&compCache), index(chunkIndex), count(0), countEnabled(0), capacity(cap),
109 rowFirstEnabledEntity(0), hasAnyCustomGenCtor(0), hasAnyCustomUniCtor(0), hasAnyCustomGenDtor(0),
110 hasAnyCustomUniDtor(0), lifespanCountdown(0), dead(0), unused(0),
112 genEntities(genEntitiesCnt), cntEntities(0), worldVersion(version) {
114 GAIA_ASSERT(uintptr_t(
this) % (
sizeof(
size_t)) == 0);
117 bool has_disabled_entities()
const {
118 return rowFirstEnabledEntity > 0;
121 bool has_enabled_entities()
const {
122 return countEnabled > 0;