From 8230faf082c405c9fd0fa640f4ce2284315782ae Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Mon, 13 Apr 2026 04:40:29 +0200 Subject: feat: wasm compositor Made-with: Cursor --- rust/crates/compositor/src/texture_store.rs | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 rust/crates/compositor/src/texture_store.rs (limited to 'rust/crates/compositor/src/texture_store.rs') diff --git a/rust/crates/compositor/src/texture_store.rs b/rust/crates/compositor/src/texture_store.rs new file mode 100644 index 00000000..ac905739 --- /dev/null +++ b/rust/crates/compositor/src/texture_store.rs @@ -0,0 +1,36 @@ +use std::collections::HashMap; + +use gpu::wgpu; + +pub struct StoredTexture { + texture: wgpu::Texture, +} + +impl StoredTexture { + pub fn new(texture: wgpu::Texture) -> Self { + Self { texture } + } + + pub fn texture(&self) -> &wgpu::Texture { + &self.texture + } +} + +#[derive(Default)] +pub struct TextureStore { + textures: HashMap, +} + +impl TextureStore { + pub fn upsert(&mut self, id: String, texture: wgpu::Texture) { + self.textures.insert(id, StoredTexture::new(texture)); + } + + pub fn get(&self, id: &str) -> Option<&StoredTexture> { + self.textures.get(id) + } + + pub fn remove(&mut self, id: &str) { + self.textures.remove(id); + } +} -- cgit v1.3.1