[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 ` 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"