Skip to main content

par_term_render/
gpu_utils.rs

1//! Common GPU utilities for texture and sampler creation.
2//!
3//! This module provides reusable helper functions for common wgpu operations
4//! to reduce code duplication across renderer modules.
5
6use wgpu::{AddressMode, Device, FilterMode, Sampler, SamplerDescriptor};
7
8/// Create a sampler with the specified filter mode and ClampToEdge address mode.
9///
10/// This allows choosing between nearest-neighbor (sharp/pixel art) and
11/// linear (smooth) filtering for texture sampling.
12pub fn create_sampler_with_filter(
13    device: &Device,
14    filter: FilterMode,
15    label: Option<&str>,
16) -> Sampler {
17    device.create_sampler(&SamplerDescriptor {
18        label,
19        address_mode_u: AddressMode::ClampToEdge,
20        address_mode_v: AddressMode::ClampToEdge,
21        address_mode_w: AddressMode::ClampToEdge,
22        mag_filter: filter,
23        min_filter: filter,
24        mipmap_filter: FilterMode::Nearest,
25        ..Default::default()
26    })
27}