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;
106 static inline uint32_t s_worldVersionDummy = 0;
107 ChunkHeader(): worldVersion(s_worldVersionDummy), entityOrderVersion(0) {}
110 const World& wld,
const ComponentCache& compCache, uint32_t chunkIndex, uint16_t cap, uint8_t genEntitiesCnt,
112 world(&wld), cc(&compCache), index(chunkIndex), deleteQueueIndex(BadIndex), count(0), countEnabled(0),
115 rowFirstEnabledEntity(0), hasAnyCustomGenCtor(0), hasAnyCustomUniCtor(0), hasAnyCustomGenDtor(0),
116 hasAnyCustomUniDtor(0), lifespanCountdown(0), dead(0), unused(0),
118 genEntities(genEntitiesCnt), cntEntities(0), worldVersion(version), entityOrderVersion(0) {
120 GAIA_ASSERT(uintptr_t(
this) % (
sizeof(
size_t)) == 0);
123 bool has_disabled_entities()
const {
124 return rowFirstEnabledEntity > 0;
127 bool has_enabled_entities()
const {
128 return countEnabled > 0;