diff options
author | 2024-04-01 11:59:46 +0200 | |
---|---|---|
committer | 2024-04-01 12:00:15 +0200 | |
commit | f5bcfec8211c04c4b05f63d01d52d3e5d2cc123e (patch) | |
tree | 4a9f0699548cea15b43743dcf00d5628890610ab /wgpu | |
parent | 14ed71e09b648693dfca9eb29f14147c5c03a6bc (diff) | |
download | iced-f5bcfec8211c04c4b05f63d01d52d3e5d2cc123e.tar.gz iced-f5bcfec8211c04c4b05f63d01d52d3e5d2cc123e.tar.bz2 iced-f5bcfec8211c04c4b05f63d01d52d3e5d2cc123e.zip |
Use `rustc-hash` for most of our `HashMap` and `HashSet` instances
Diffstat (limited to 'wgpu')
-rw-r--r-- | wgpu/Cargo.toml | 1 | ||||
-rw-r--r-- | wgpu/src/image/raster.rs | 6 | ||||
-rw-r--r-- | wgpu/src/image/vector.rs | 10 | ||||
-rw-r--r-- | wgpu/src/primitive/pipeline.rs | 4 |
4 files changed, 11 insertions, 10 deletions
diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml index f6162e0f..0b713784 100644 --- a/wgpu/Cargo.toml +++ b/wgpu/Cargo.toml @@ -32,6 +32,7 @@ glyphon.workspace = true guillotiere.workspace = true log.workspace = true once_cell.workspace = true +rustc-hash.workspace = true thiserror.workspace = true wgpu.workspace = true diff --git a/wgpu/src/image/raster.rs b/wgpu/src/image/raster.rs index a6cba76a..441b294f 100644 --- a/wgpu/src/image/raster.rs +++ b/wgpu/src/image/raster.rs @@ -4,7 +4,7 @@ use crate::graphics; use crate::graphics::image::image_rs; use crate::image::atlas::{self, Atlas}; -use std::collections::{HashMap, HashSet}; +use rustc_hash::{FxHashMap, FxHashSet}; /// Entry in cache corresponding to an image handle #[derive(Debug)] @@ -38,8 +38,8 @@ impl Memory { /// Caches image raster data #[derive(Debug, Default)] pub struct Cache { - map: HashMap<u64, Memory>, - hits: HashSet<u64>, + map: FxHashMap<u64, Memory>, + hits: FxHashSet<u64>, } impl Cache { diff --git a/wgpu/src/image/vector.rs b/wgpu/src/image/vector.rs index d9be50d7..d681b2e6 100644 --- a/wgpu/src/image/vector.rs +++ b/wgpu/src/image/vector.rs @@ -5,7 +5,7 @@ use crate::image::atlas::{self, Atlas}; use resvg::tiny_skia; use resvg::usvg::{self, TreeTextToPath}; -use std::collections::{HashMap, HashSet}; +use rustc_hash::{FxHashMap, FxHashSet}; use std::fs; /// Entry in cache corresponding to an svg handle @@ -33,10 +33,10 @@ impl Svg { /// Caches svg vector and raster data #[derive(Debug, Default)] pub struct Cache { - svgs: HashMap<u64, Svg>, - rasterized: HashMap<(u64, u32, u32, ColorFilter), atlas::Entry>, - svg_hits: HashSet<u64>, - rasterized_hits: HashSet<(u64, u32, u32, ColorFilter)>, + svgs: FxHashMap<u64, Svg>, + rasterized: FxHashMap<(u64, u32, u32, ColorFilter), atlas::Entry>, + svg_hits: FxHashSet<u64>, + rasterized_hits: FxHashSet<(u64, u32, u32, ColorFilter)>, } type ColorFilter = Option<[u8; 4]>; diff --git a/wgpu/src/primitive/pipeline.rs b/wgpu/src/primitive/pipeline.rs index 814440ba..59c54db9 100644 --- a/wgpu/src/primitive/pipeline.rs +++ b/wgpu/src/primitive/pipeline.rs @@ -1,8 +1,8 @@ //! Draw primitives using custom pipelines. use crate::core::{self, Rectangle, Size}; +use rustc_hash::FxHashMap; use std::any::{Any, TypeId}; -use std::collections::HashMap; use std::fmt::Debug; use std::sync::Arc; @@ -82,7 +82,7 @@ impl Renderer for crate::Renderer { /// Stores custom, user-provided pipelines. #[derive(Default, Debug)] pub struct Storage { - pipelines: HashMap<TypeId, Box<dyn Any + Send>>, + pipelines: FxHashMap<TypeId, Box<dyn Any + Send>>, } impl Storage { |