diff options
author | 2024-12-08 03:27:37 +0100 | |
---|---|---|
committer | 2024-12-08 03:27:37 +0100 | |
commit | 917feb924711d22118778db8db7b534533863b60 (patch) | |
tree | 1a176ddcd6ac4dac821ea7eb21a0bb02f5a75040 /wgpu/src/triangle.rs | |
parent | d6182299b9db7a1928b7740736d53196e33d66e3 (diff) | |
download | iced-917feb924711d22118778db8db7b534533863b60.tar.gz iced-917feb924711d22118778db8db7b534533863b60.tar.bz2 iced-917feb924711d22118778db8db7b534533863b60.zip |
make engine send by using Arc in text/triangle caches
Diffstat (limited to '')
-rw-r--r-- | wgpu/src/triangle.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs index b865047e..ab88be3b 100644 --- a/wgpu/src/triangle.rs +++ b/wgpu/src/triangle.rs @@ -8,8 +8,8 @@ use crate::Buffer; use rustc_hash::FxHashMap; use std::collections::hash_map; -use std::rc::{self, Rc}; use std::sync::atomic::{self, AtomicU64}; +use std::sync::{self, Arc}; const INITIAL_INDEX_COUNT: usize = 1_000; const INITIAL_VERTEX_COUNT: usize = 1_000; @@ -31,7 +31,7 @@ pub enum Item { #[derive(Debug, Clone)] pub struct Cache { id: Id, - batch: Rc<[Mesh]>, + batch: Arc<[Mesh]>, version: usize, } @@ -48,13 +48,13 @@ impl Cache { Some(Self { id: Id(NEXT_ID.fetch_add(1, atomic::Ordering::Relaxed)), - batch: Rc::from(meshes), + batch: Arc::from(meshes), version: 0, }) } pub fn update(&mut self, meshes: Vec<Mesh>) { - self.batch = Rc::from(meshes); + self.batch = Arc::from(meshes); self.version += 1; } } @@ -64,7 +64,7 @@ struct Upload { layer: Layer, transformation: Transformation, version: usize, - batch: rc::Weak<[Mesh]>, + batch: sync::Weak<[Mesh]>, } #[derive(Debug, Default)] @@ -113,7 +113,7 @@ impl Storage { new_transformation, ); - upload.batch = Rc::downgrade(&cache.batch); + upload.batch = Arc::downgrade(&cache.batch); upload.version = cache.version; upload.transformation = new_transformation; } @@ -135,7 +135,7 @@ impl Storage { layer, transformation: new_transformation, version: 0, - batch: Rc::downgrade(&cache.batch), + batch: Arc::downgrade(&cache.batch), }); log::debug!( |