pebble/wgpu/mod.rs
1//! A ready-to-use `wgpu` [`Backend`](crate::rendering::backend::Backend)
2//! implementation ([`backend::WGPUPlugin`]), plus a higher-level
3//! descriptor-based material/mesh/texture/compute layer built on top of it
4//! so most apps never touch raw `wgpu` types directly.
5//!
6//! Building something this layer doesn't already cover (a camera, a custom
7//! compute buffer, anything constructed by hand inside a
8//! [`LazyResource`](crate::assets::singleton_asset::LazyResource)/
9//! [`Asset`](crate::assets::upload::Asset) impl)? Start with
10//! [`prelude`] — `use pebble::wgpu::prelude::*;` — rather than reaching
11//! straight for `backend.device.create_*`/`wgpu::*Descriptor`: the
12//! [`binding`] and [`buffers`] modules it re-exports are all builders
13//! (`BindGroupLayoutBuilder`, `BufferBuilder`, `BindGroupBuilder`, ...) —
14//! chained `.method(...)` calls that fold in bookkeeping (duplicate
15//! `@binding(N)` detection, dynamic-offset alignment) a hand-written
16//! descriptor won't give you for free.
17
18pub mod backend;
19pub mod binding;
20pub mod buffers;
21pub mod compute;
22pub mod cubemap;
23pub mod instance;
24pub mod layout;
25pub mod material;
26pub mod mesh;
27pub mod mipmap;
28mod plugin_macros;
29#[cfg(feature = "profiler")]
30pub mod profiler;
31pub mod prelude;
32pub mod samplers;
33pub mod texture_array;
34pub mod textures;
35#[cfg(test)]
36pub(crate) mod test_util;
37pub mod window;