pub use wgpu::{AddressMode, FilterMode, SamplerBindingType, SamplerBorderColor};
use crate::Context;
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
pub struct SamplerInfo {
pub address_mode_u: AddressMode,
pub address_mode_v: AddressMode,
pub address_mode_w: AddressMode,
pub mag_filter: FilterMode,
pub min_filter: FilterMode,
pub border_color: Option<SamplerBorderColor>,
}
#[derive(Debug)]
pub struct Sampler {
pub(crate) handle: wgpu::Sampler,
}
impl Sampler {
pub fn new(context: &Context, info: &SamplerInfo) -> Self {
let sampler = context
.device
.handle
.create_sampler(&wgpu::SamplerDescriptor {
label: Some("Sampler"),
address_mode_u: info.address_mode_u,
address_mode_v: info.address_mode_v,
address_mode_w: info.address_mode_w,
mag_filter: info.mag_filter,
min_filter: info.min_filter,
border_color: info.border_color,
..Default::default()
});
Self { handle: sampler }
}
}