From 69d90ece7f54996f0f51fc120a38d37717c5248e Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 8 Jun 2024 20:47:35 +0200 Subject: perf(ecs): store components using archetypes --- ecs/src/lib.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'ecs/src/lib.rs') diff --git a/ecs/src/lib.rs b/ecs/src/lib.rs index 1983f66..0dd1c02 100644 --- a/ecs/src/lib.rs +++ b/ecs/src/lib.rs @@ -83,6 +83,8 @@ impl World ) where EventT: Event, { + system.prepare(&self.data); + self.systems.push(system.into_type_erased()); self.data @@ -159,6 +161,12 @@ impl World /// Will panic if a internal lock cannot be acquired. pub fn event_loop(&self) { + self.data + .component_storage + .write_nonblock() + .expect("Failed to acquire read-write component storage lock") + .make_archetype_lookup_entries(); + let event_seq = EventSeq::ids(); loop { -- cgit v1.2.3-18-g5258