mireforge_wgpu/
lib.rs

1/*
2 * Copyright (c) Peter Bjorklund. All rights reserved. https://github.com/mireforge/mireforge
3 * Licensed under the MIT License. See LICENSE in the project root for license information.
4 */
5use wgpu::{
6    AddressMode, Device, FilterMode, Sampler, SamplerDescriptor, ShaderModule,
7    ShaderModuleDescriptor, ShaderSource,
8};
9
10#[must_use]
11pub fn create_shader_module(device: &Device, name: &str, shader_source: &str) -> ShaderModule {
12    device.create_shader_module(ShaderModuleDescriptor {
13        label: Some(name),
14        source: ShaderSource::Wgsl(shader_source.into()),
15    })
16}
17
18#[must_use]
19pub fn create_nearest_sampler(device: &Device, label: &str) -> Sampler {
20    device.create_sampler(&SamplerDescriptor {
21        label: Some(label),
22        address_mode_u: AddressMode::Repeat, // AddressMode::ClampToEdge,
23        address_mode_v: AddressMode::Repeat,
24        address_mode_w: AddressMode::Repeat,
25        mag_filter: FilterMode::Nearest,
26        min_filter: FilterMode::Nearest,
27        mipmap_filter: FilterMode::Nearest,
28        compare: None,
29        anisotropy_clamp: 1,
30        lod_min_clamp: 0.0,
31        lod_max_clamp: 32.0,
32        border_color: None,
33    })
34}