1#[derive(Clone, Copy, PartialEq, Eq, Hash)]
2pub enum SamplerKind {
3 LinearRepeat,
4 LinearClamp,
5 Nearest,
6}
7
8impl SamplerKind {
9 pub fn descriptor(&self) -> wgpu::SamplerDescriptor<'static> {
14 match self {
15 SamplerKind::LinearRepeat => wgpu::SamplerDescriptor {
16 address_mode_u: wgpu::AddressMode::Repeat,
17 address_mode_v: wgpu::AddressMode::Repeat,
18 address_mode_w: wgpu::AddressMode::Repeat,
19 mag_filter: wgpu::FilterMode::Linear,
20 min_filter: wgpu::FilterMode::Linear,
21 mipmap_filter: wgpu::MipmapFilterMode::Linear,
22 ..Default::default()
23 },
24 SamplerKind::LinearClamp => wgpu::SamplerDescriptor {
25 address_mode_u: wgpu::AddressMode::ClampToEdge,
26 address_mode_v: wgpu::AddressMode::ClampToEdge,
27 address_mode_w: wgpu::AddressMode::ClampToEdge,
28 mag_filter: wgpu::FilterMode::Linear,
29 min_filter: wgpu::FilterMode::Linear,
30 mipmap_filter: wgpu::MipmapFilterMode::Linear,
31 ..Default::default()
32 },
33 SamplerKind::Nearest => wgpu::SamplerDescriptor {
34 mag_filter: wgpu::FilterMode::Nearest,
35 min_filter: wgpu::FilterMode::Nearest,
36 mipmap_filter: wgpu::MipmapFilterMode::Linear,
37 ..Default::default()
38 },
39 }
40 }
41}