summaryrefslogtreecommitdiffstats
path: root/wgpu
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-01 11:59:46 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-04-01 12:00:15 +0200
commitf5bcfec8211c04c4b05f63d01d52d3e5d2cc123e (patch)
tree4a9f0699548cea15b43743dcf00d5628890610ab /wgpu
parent14ed71e09b648693dfca9eb29f14147c5c03a6bc (diff)
downloadiced-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.toml1
-rw-r--r--wgpu/src/image/raster.rs6
-rw-r--r--wgpu/src/image/vector.rs10
-rw-r--r--wgpu/src/primitive/pipeline.rs4
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 {