Use rustc-hash
for HashSet
of glyphs_in_use
(#90)
This commit is contained in:
parent
4f24305ac5
commit
3e281d1828
2 changed files with 13 additions and 6 deletions
|
@ -11,7 +11,8 @@ license = "MIT OR Apache-2.0 OR Zlib"
|
||||||
wgpu = { version = "0.19", default-features = false, features = ["wgsl"] }
|
wgpu = { version = "0.19", default-features = false, features = ["wgsl"] }
|
||||||
etagere = "0.2.10"
|
etagere = "0.2.10"
|
||||||
cosmic-text = "0.11"
|
cosmic-text = "0.11"
|
||||||
lru = "0.12.1"
|
lru = { version = "0.12.1", default-features = false }
|
||||||
|
rustc-hash = "1.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
winit = { version = "0.29.10", features = ["rwh_05"] }
|
winit = { version = "0.29.10", features = ["rwh_05"] }
|
||||||
|
|
|
@ -4,7 +4,11 @@ use crate::{
|
||||||
};
|
};
|
||||||
use etagere::{size2, Allocation, BucketedAtlasAllocator};
|
use etagere::{size2, Allocation, BucketedAtlasAllocator};
|
||||||
use lru::LruCache;
|
use lru::LruCache;
|
||||||
use std::{borrow::Cow, collections::HashSet, mem::size_of, num::NonZeroU64, sync::Arc};
|
use rustc_hash::FxHasher;
|
||||||
|
use std::{
|
||||||
|
borrow::Cow, collections::HashSet, hash::BuildHasherDefault, mem::size_of, num::NonZeroU64,
|
||||||
|
sync::Arc,
|
||||||
|
};
|
||||||
use wgpu::{
|
use wgpu::{
|
||||||
BindGroup, BindGroupDescriptor, BindGroupEntry, BindGroupLayout, BindGroupLayoutEntry,
|
BindGroup, BindGroupDescriptor, BindGroupEntry, BindGroupLayout, BindGroupLayoutEntry,
|
||||||
BindingResource, BindingType, BlendState, BufferBindingType, ColorTargetState, ColorWrites,
|
BindingResource, BindingType, BlendState, BufferBindingType, ColorTargetState, ColorWrites,
|
||||||
|
@ -17,6 +21,8 @@ use wgpu::{
|
||||||
VertexState,
|
VertexState,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type Hasher = BuildHasherDefault<FxHasher>;
|
||||||
|
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
pub(crate) struct InnerAtlas {
|
pub(crate) struct InnerAtlas {
|
||||||
pub kind: Kind,
|
pub kind: Kind,
|
||||||
|
@ -24,8 +30,8 @@ pub(crate) struct InnerAtlas {
|
||||||
pub texture_view: TextureView,
|
pub texture_view: TextureView,
|
||||||
pub packer: BucketedAtlasAllocator,
|
pub packer: BucketedAtlasAllocator,
|
||||||
pub size: u32,
|
pub size: u32,
|
||||||
pub glyph_cache: LruCache<CacheKey, GlyphDetails>,
|
pub glyph_cache: LruCache<CacheKey, GlyphDetails, Hasher>,
|
||||||
pub glyphs_in_use: HashSet<CacheKey>,
|
pub glyphs_in_use: HashSet<CacheKey, Hasher>,
|
||||||
pub max_texture_dimension_2d: u32,
|
pub max_texture_dimension_2d: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,8 +62,8 @@ impl InnerAtlas {
|
||||||
|
|
||||||
let texture_view = texture.create_view(&TextureViewDescriptor::default());
|
let texture_view = texture.create_view(&TextureViewDescriptor::default());
|
||||||
|
|
||||||
let glyph_cache = LruCache::unbounded();
|
let glyph_cache = LruCache::unbounded_with_hasher(Hasher::default());
|
||||||
let glyphs_in_use = HashSet::new();
|
let glyphs_in_use = HashSet::with_hasher(Hasher::default());
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
kind,
|
kind,
|
||||||
|
|
Loading…
Reference in a new issue