diff options
Diffstat (limited to 'engine/src/rendering/backend/opengl.rs')
| -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 { |
