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

Temporary VM matching buffer meant to be owned by an ECS World. QueryInfo only acquires a frame while executing the VM. More...

#include <query_info.h>

Public Member Functions

void clear_temporary_matches ()
 Clears all temporary match data, including dedup stamps.
 
void clear_temporary_matches_keep_stamps ()
 Clears temporary match arrays while preserving allocated dedup stamp pages. Full match() can reuse prior stamp pages and advance matchVersion instead of zeroing the whole table again.
 
void reset_stamps ()
 Clears dedup stamps and resets the match-version counter.
 
GAIA_NODISCARD uint32_t next_match_version ()
 Advances and returns the dedup stamp for the next VM match pass.
 

Public Attributes

cnt::darr< const Archetype * > matchesArr
 Ordered list of matched archetypes emitted by the VM for the current run.
 
ArchetypeMatchStamps matchStamps
 Paged O(1) dedup table keyed by world-local archetype ids. Pages stay allocated on the scratch frame so repeated matches do not keep reallocating heap memory when archetype ids revisit the same ranges.
 
cnt::darray< const Archetype * > matchesArrDynPrev
 Previous result membership used when a dynamic rebuild compares reverse-index changes.
 
uint32_t matchVersion = 0
 Monotonic dedup stamp used when the same scratch frame is reused by later full match() calls without clearing stamp pages.
 

Detailed Description

Temporary VM matching buffer meant to be owned by an ECS World. QueryInfo only acquires a frame while executing the VM.

Member Function Documentation

◆ next_match_version()

GAIA_NODISCARD uint32_t gaia::ecs::QueryMatchScratch::next_match_version ( )
inline

Advances and returns the dedup stamp for the next VM match pass.

Returns
Non-zero match version reserved for the current pass.

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