diff options
| author | HampusM <hampus@hampusmat.com> | 2026-09-01 18:24:39 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-09-01 18:24:39 +0200 |
| commit | 12f7283b34b9504cafe9448ede110b1fc2a3ae41 (patch) | |
| tree | 529644b6722382e14461c41f28ae42f2f5404132 /engine/src/rendering | |
| parent | 632a7188ea267c93b5317ceffd18f1dab0e97cbe (diff) | |
refactor(engine): replace MapVec with intmap crate
Diffstat (limited to 'engine/src/rendering')
| -rw-r--r-- | engine/src/rendering/backend/opengl.rs | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 381a609..2f373fc 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -16,6 +16,7 @@ use glutin::surface::{ Surface as GlutinSurface, WindowSurface as GlutinWindowSurface, }; +use intmap::IntMap; use opengl_bindings::blending::{ configure as gl_blending_configure, Configuration as GlBlendingConfig, @@ -138,7 +139,7 @@ use crate::texture::{ Properties as TextureProperties, Wrapping as TextureWrapping, }; -use crate::util::{MapVec, OptionExt}; +use crate::util::OptionExt; use crate::vector::{Vec2, Vec3}; use crate::windowing::dpi::PhysicalSize; use crate::windowing::window::{ @@ -171,7 +172,7 @@ struct GraphicsContext #[derive(Debug, Default)] struct BackendResourceStore { - inner: MapVec<BackendResourceId, BackendResource>, + inner: IntMap<BackendResourceId, BackendResource>, next_id: BackendResourceId, } @@ -237,7 +238,7 @@ impl BackendResourceStore let resource_id = BackendResourceId(object.as_raw()); - let Some(resource) = self.inner.get(&resource_id) else { + let Some(resource) = self.inner.get(resource_id) else { cold_path(); tracing::error!(?object_id, ?resource_id, "Backend resource does not exist"); return None; @@ -285,7 +286,7 @@ impl BackendResourceStore let resource_id = BackendResourceId(object.as_raw()); - let Some(resource) = self.inner.get_mut(&resource_id) else { + let Some(resource) = self.inner.get_mut(resource_id) else { cold_path(); tracing::error!(?object_id, ?resource_id, "Backend resource does not exist"); return None; @@ -348,6 +349,18 @@ impl BackendResourceStore #[derive(Debug, Default, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] struct BackendResourceId(ObjectRawValue); +impl intmap::IntKey for BackendResourceId +{ + type Int = ObjectRawValue; + + const PRIME: Self::Int = <ObjectRawValue as intmap::IntKey>::PRIME; + + fn into_int(self) -> Self::Int + { + self.0.into_int() + } +} + #[derive(Debug)] struct GraphicsContextSurface { |
