110 lines
2.7 KiB
TOML
110 lines
2.7 KiB
TOML
[package]
|
|
name = "wsg-lib"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[lib]
|
|
path = "src/lib.rs"
|
|
|
|
[features]
|
|
default = ["all-prims"]
|
|
|
|
# Primitives procédurales (zéro dep externe)
|
|
prim-cube = []
|
|
prim-plane = []
|
|
prim-sphere = []
|
|
prim-cylinder = []
|
|
prim-cone = []
|
|
prim-torus = []
|
|
all-prims = ["prim-cube", "prim-plane", "prim-sphere", "prim-cylinder", "prim-cone", "prim-torus"]
|
|
|
|
# Import de fichiers
|
|
import-obj = []
|
|
import-gltf = []
|
|
|
|
[dependencies]
|
|
wgpu = "30.0.0" # Vérifiez la version la plus récente
|
|
winit = "0.30.13" # For window management — pinned to match examples
|
|
thiserror = "2"
|
|
bytemuck = { version = "1.25.0", features = ["derive"] }
|
|
glam = { version = "0.33", features = ["bytemuck"] } # feature requis pour Pod/Zeroable sur Mat4/Vec4 (uniform.rs)
|
|
pollster = { version="1.0.1", features = ["macro"] }
|
|
# Étape 10 (Textures, DRAFT D3) : décodage d'images (PNG/JPEG) pour charger des textures diffuses.
|
|
# default-features = false pour n'emporter que les codecs utiles (plus petit arbre de compilation).
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
|
|
|
|
# Examples live in per-category subfolders (meshes/, lights/, cameras/, effects/).
|
|
# Cargo only auto-discovers top-level `examples/*.rs`, so every example is
|
|
# declared explicitly with its `path`. Names are stable: `cargo run -p wsg-lib
|
|
# --example <name>` works exactly as before the reorganization.
|
|
# Each folder has a README.md documenting its examples.
|
|
|
|
# --- meshes/ : geometry, materials, import, low-level workflow ---
|
|
[[example]]
|
|
name = "simple"
|
|
path = "examples/meshes/simple.rs"
|
|
|
|
[[example]]
|
|
name = "cube"
|
|
path = "examples/meshes/cube.rs"
|
|
|
|
[[example]]
|
|
name = "pbr"
|
|
path = "examples/meshes/pbr.rs"
|
|
|
|
[[example]]
|
|
name = "import"
|
|
path = "examples/meshes/import.rs"
|
|
required-features = ["import-obj"]
|
|
|
|
[[example]]
|
|
name = "manual"
|
|
path = "examples/meshes/manual.rs"
|
|
|
|
# --- lights/ : shadow mapping, spot, emissive ---
|
|
[[example]]
|
|
name = "shadow"
|
|
path = "examples/lights/shadow.rs"
|
|
|
|
[[example]]
|
|
name = "shadow_test"
|
|
path = "examples/lights/shadow_test.rs"
|
|
|
|
[[example]]
|
|
name = "spot_test"
|
|
path = "examples/lights/spot_test.rs"
|
|
|
|
[[example]]
|
|
name = "emissive"
|
|
path = "examples/lights/emissive.rs"
|
|
|
|
# --- cameras/ : camera-driven rendering (frustum culling) ---
|
|
[[example]]
|
|
name = "culling"
|
|
path = "examples/cameras/culling.rs"
|
|
|
|
# --- effects/ : HDR, post-process, the full showcase ---
|
|
[[example]]
|
|
name = "demo"
|
|
path = "examples/effects/demo.rs"
|
|
|
|
[[example]]
|
|
name = "bloom"
|
|
path = "examples/effects/bloom.rs"
|
|
|
|
[[example]]
|
|
name = "hdr"
|
|
path = "examples/effects/hdr.rs"
|
|
|
|
[[example]]
|
|
name = "msaa"
|
|
path = "examples/effects/msaa.rs"
|
|
|
|
[[example]]
|
|
name = "fog"
|
|
path = "examples/effects/fog.rs"
|
|
|
|
[[example]]
|
|
name = "dof"
|
|
path = "examples/effects/dof.rs"
|