Skip to main content

pebble/
lib.rs

1//! A low-level Rust game engine: an ECS ([`ecs`]) plus a wgpu-backed
2//! renderer ([`graphics`]) and asset pipeline ([`assets`]), wired together
3//! by [`app::App`]. No built-in high-level systems (no scene graph, no
4//! physics) — pebble gives you the primitives and stays out of the way.
5//!
6//! Start with [`app::App`] and [`ecs::plugin::Plugin`].
7
8// So `#[derive(MaterialParams)]`/`#[derive(ComputeParams)]`'s generated
9// `::pebble::...` paths also resolve when the derive is used inside this
10// crate's own tests, not just from a downstream consumer.
11extern crate self as pebble;
12
13// Re-exported so `#[derive(MaterialParams)]`/`#[derive(ComputeParams)]` can
14// emit `::pebble::encase::...` and `::pebble::EncaseShaderType` — downstream
15// crates aren't required to depend on `encase` directly just to use the
16// derive.
17pub use encase;
18pub use pebble_derive::ShaderType as EncaseShaderType;
19
20pub mod app;
21pub mod assets;
22pub mod ecs;
23pub mod graphics;
24mod macros;
25pub mod time;