hexga_wgpu 0.0.11-beta.47

wgpu wrapped for hexga
Documentation
use super::*;


#[repr(transparent)]
#[derive(Debug, Clone)]
pub struct GpuSampler
{
    pub wgpu: wgpu::Sampler,
}
impl From<wgpu::Sampler> for GpuSampler
{
    fn from(wgpu: wgpu::Sampler) -> Self { Self { wgpu } }
}
impl From<GpuSampler> for wgpu::Sampler
{
    fn from(sampler: GpuSampler) -> Self { sampler.wgpu }
}
impl Default for GpuSampler
{
    fn default() -> Self {
        Self::linear()
    }
}
impl GpuSampler
{
    pub fn pixel_art() -> Self { Self::nearest() }
    pub fn nearest() -> Self
    {
        Gpu.wgpu.device.create_sampler(&wgpu::SamplerDescriptor {
            address_mode_u: wgpu::AddressMode::ClampToEdge,
            address_mode_v: wgpu::AddressMode::ClampToEdge,
            address_mode_w: wgpu::AddressMode::ClampToEdge,
            mag_filter: wgpu::FilterMode::Nearest,
            min_filter: wgpu::FilterMode::Nearest,
            mipmap_filter: wgpu::FilterMode::Nearest,
            ..Default::default()
        }).into()
    }

    pub fn linear() -> Self
    {
        Gpu.wgpu.device.create_sampler(&wgpu::SamplerDescriptor {
            address_mode_u: wgpu::AddressMode::ClampToEdge,
            address_mode_v: wgpu::AddressMode::ClampToEdge,
            address_mode_w: wgpu::AddressMode::ClampToEdge,
            mag_filter: wgpu::FilterMode::Linear,
            min_filter: wgpu::FilterMode::Linear,
            mipmap_filter: wgpu::FilterMode::Linear,
            ..Default::default()
        }).into()
    }
}