wgpu_mipmap/
lib.rs

1/*!
2Generate mipmaps for [wgpu](https://github.com/gfx-rs/wgpu-rs) textures.
3
4## Usage
5
6Add this to your `Cargo.toml`:
7
8```toml
9[dependencies]
10wgpu-mipmap = "0.1"
11```
12
13Example usage:
14
15```rust
16use wgpu_mipmap::*;
17fn example(device: &wgpu::Device, queue: &wgpu::Queue) -> Result<(), Error> {
18    // create a recommended generator
19    let generator = RecommendedMipmapGenerator::new(&device);
20    // create and upload data to a texture
21    let texture_descriptor = wgpu::TextureDescriptor {
22        size: wgpu::Extent3d {
23            width: 512,
24            height: 512,
25            depth: 1,
26        },
27        mip_level_count: 10, // 1 + log2(512)
28        sample_count: 1,
29        format: wgpu::TextureFormat::Rgba8Unorm,
30        dimension: wgpu::TextureDimension::D2,
31        usage: wgpu::TextureUsage::STORAGE,
32        label: None,
33    };
34    let texture = device.create_texture(&texture_descriptor);
35    // upload_data_to_texture(&texture);
36    // create an encoder and generate mipmaps for the texture
37    let mut encoder = device.create_command_encoder(&Default::default());
38    generator.generate(&device, &mut encoder, &texture, &texture_descriptor)?;
39    queue.submit(std::iter::once(encoder.finish()));
40    Ok(())
41}
42```
43*/
44mod backends;
45mod core;
46
47#[doc(hidden)]
48pub mod util;
49
50#[doc(inline)]
51pub use crate::backends::{
52    ComputeMipmapGenerator, CopyMipmapGenerator, RecommendedMipmapGenerator, RenderMipmapGenerator,
53};
54
55#[doc(inline)]
56pub use crate::core::*;