From ef22fdcb1dbfc89aa524016637fe32597481e196 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 17 Apr 2026 17:02:08 +0200 Subject: feat(engine): add sequential renderer object ids --- engine/src/renderer/object.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/engine/src/renderer/object.rs b/engine/src/renderer/object.rs index eba5bdf..8e2254f 100644 --- a/engine/src/renderer/object.rs +++ b/engine/src/renderer/object.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; use std::collections::hash_map::Entry as HashMapEntry; +use std::sync::atomic::{AtomicU64, Ordering}; use ecs::Component; @@ -12,8 +13,24 @@ pub type RawValue = u32; pub enum Id { Asset(AssetId), + Sequential(SequentialId), } +impl Id +{ + pub fn new_sequential() -> Self + { + static NEXT_SEQUENTIAL_ID: AtomicU64 = AtomicU64::new(0); + + Self::Sequential(SequentialId( + NEXT_SEQUENTIAL_ID.fetch_add(1, Ordering::Relaxed), + )) + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] +pub struct SequentialId(u64); + /// Renderer object store. #[derive(Debug, Default, Component)] pub struct Store -- cgit v1.2.3-18-g5258