refactor(ecs)!: reworked the entity id system

This commit is contained in:
lisk77 2025-11-25 23:11:37 +01:00
parent eced6ddf3f
commit 607bf94f1e
7 changed files with 198 additions and 95 deletions

View file

@ -18,7 +18,11 @@ impl CameraManager {
self.cameras.get(self.active_camera).unwrap()
}
pub fn update_from_scene(&mut self, scene: &comet_ecs::Scene, camera_entities: Vec<usize>) {
pub fn update_from_scene(
&mut self,
scene: &comet_ecs::Scene,
camera_entities: Vec<comet_ecs::EntityId>,
) {
self.cameras.clear();
let mut cameras_with_priority: Vec<(RenderCamera, u8)> = Vec::new();

View file

@ -62,7 +62,7 @@ pub struct Renderer2D<'a> {
resource_manager: GraphicResourceManager,
camera_manager: CameraManager,
render_passes: Vec<RenderPass>,
cached_render_entities: Vec<usize>,
cached_render_entities: Vec<comet_ecs::EntityId>,
last_frame_time: std::time::Instant,
delta_time: f32,
}
@ -754,7 +754,8 @@ impl<'a> Renderer2D<'a> {
let mut dirty_sort = self.cached_render_entities.len() != unsorted_entities.len();
if !dirty_sort {
let unsorted_set: HashSet<usize> = unsorted_entities.iter().copied().collect();
let unsorted_set: HashSet<comet_ecs::EntityId> =
unsorted_entities.iter().copied().collect();
dirty_sort = self
.cached_render_entities
.iter()
@ -952,7 +953,7 @@ impl<'a> Renderer2D<'a> {
}
}
fn setup_camera(&mut self, scene: &comet_ecs::Scene, cameras: Vec<usize>) {
fn setup_camera(&mut self, scene: &comet_ecs::Scene, cameras: Vec<comet_ecs::EntityId>) {
if cameras.is_empty() {
return;
}