oxide_renderer/texture/
sampler.rs1use wgpu::{AddressMode, FilterMode, MipmapFilterMode};
4
5#[derive(Clone, Copy, Debug)]
7pub struct SamplerDescriptor {
8 pub address_mode_u: AddressMode,
9 pub address_mode_v: AddressMode,
10 pub address_mode_w: AddressMode,
11 pub mag_filter: FilterMode,
12 pub min_filter: FilterMode,
13 pub mipmap_filter: MipmapFilterMode,
14}
15
16impl Default for SamplerDescriptor {
17 fn default() -> Self {
18 Self {
19 address_mode_u: AddressMode::ClampToEdge,
20 address_mode_v: AddressMode::ClampToEdge,
21 address_mode_w: AddressMode::ClampToEdge,
22 mag_filter: FilterMode::Linear,
23 min_filter: FilterMode::Linear,
24 mipmap_filter: MipmapFilterMode::Nearest,
25 }
26 }
27}
28
29impl SamplerDescriptor {
30 pub fn linear() -> Self {
32 Self::default()
33 }
34
35 pub fn nearest() -> Self {
37 Self {
38 mag_filter: FilterMode::Nearest,
39 min_filter: FilterMode::Nearest,
40 mipmap_filter: MipmapFilterMode::Nearest,
41 ..Self::default()
42 }
43 }
44
45 pub fn repeat() -> Self {
47 Self {
48 address_mode_u: AddressMode::Repeat,
49 address_mode_v: AddressMode::Repeat,
50 address_mode_w: AddressMode::Repeat,
51 ..Self::default()
52 }
53 }
54}