class MeshCacheSweepSystem(val meshManager: MeshManager) : SystemBase
MeshCacheSweepSystem
(
meshManager
)
|
executeCount
: Long
[Get] |
The number of times this system's SystemBase.execute method has been called by the system manager. Incremented automatically before each execution cycle. Useful for performance monitoring.
@Volatile guarantees atomic 64-bit reads + happens-before semantics so the introspection reader (which runs on the dump caller's thread) observes a consistent value. Only SystemBase.incrementExecuteCount writes this field, so the non-atomic read-modify-write is safe.
Signature
var executeCount: Long |
meshManager
: MeshManager
[Get] |
The MeshManager whose dedup cache is swept when a request matures.
Signature
val meshManager: MeshManager |
systemManager
: SystemManager
[Get][Set] |
The SystemManager that this system is registered with. Provides access to other systems and the scene. Initialized during system registration.
Signature
lateinit var systemManager: SystemManager |
associateSystemManager
(
systemManager
)
|
Associates this system with a SystemManager. Called during registration. Throws RuntimeException if the system is already associated — each system instance can only belong to one manager.
Signature
fun associateSystemManager(systemManager: SystemManager) Parameters |
delete
(
entity
)
|
Called when an entity is removed from the scene. Override to clean up any per-entity state this system maintains, such as cached components, tracking maps, or native resource handles.
Signature
open fun delete(entity: Entity) Parameters entity: Entity |
destroy
()
|
Process-shutdown safety: drop any still-pending sweeps.
Signature
open override fun destroy() |
execute
()
|
Called each frame by the SystemManager to perform this system's per-tick logic. Override to query entities with relevant components and apply updates.
Signature
open override fun execute() |
getDependencies
()
|
Returns the execution ordering dependencies for this system. Override to declare which other systems must run before or after this one using SystemDependencies.
Signature
open fun getDependencies(): SystemDependencies? Returns SystemDependencies?
The dependency configuration, or null if this system has no ordering constraints.
|
getScene
()
| |
scheduleSweep
(
candidateTokens
, framesToWait
)
|
Schedules a deferred sweep of the MeshManager dedup cache for candidateTokens to run framesToWait frames from now (default 2).
The sweep is conservative: only entries in candidateTokens that no live mesh-bearing entity still references are freed. No-op for an empty candidateTokens set. Safe to call from any thread.
Signature
fun scheduleSweep(candidateTokens: Set<String>, framesToWait: Int = 2) Parameters candidateTokens: Set
cache keys the caller is willing to free. Snapshotted into the pending request — the caller may safely mutate the original after this returns.
framesToWait: Int
number of MeshCacheSweepSystem.execute ticks to wait before invoking the sweep. Must be >= 0; 0 runs the sweep on the next tick. Defaults to 2.
|