c1e07b42b4
Étape 3 (infrastructure uniforms) + le câblage minimal d'Étape 4 pour garder les exemples exécutables (wgpu requiert que tous les bind groups du layout pipeline soient posés au draw) : - resources/uniform.rs : types bytemuck Pod FrameUniforms (192 B) et ObjectUniform (64 B), alignés 16 octets sans padding; offsets vérifiés par un test unitaire contre le contrat du shader. glam feature bytemuck activé. - pipeline_cache: create_uniform_bind_group_layouts() expose les 2 layouts (frame @0 Vertex|Fragment + object @1 Vertex); build_pipeline les attache à TOUT pipeline (un seul layout pour tous, décision actée). - Renderer: alloue le buffer frame partagé + BindGroup(0) (défaut identité, mode lit) et un object identité partagé pour le chemin bas-niveau; cache RefCell<HashMap<label,(buffer,bindgroup)>> par entité, model réécrit chaque frame depuis transform.to_matrix(); draw_entity pose groupes 0+1. 4.3 (caméra active + aspect) non implémenté: simple/manual restent exécutables car basic ignore ces uniforms. Documentation DRAFT mise à jour. Validation: check workspace+examples 0 warning, doc 0 warning, test (Pod+wgsl) OK, fmt propre.
16 lines
474 B
TOML
16 lines
474 B
TOML
[package]
|
|
name = "wsg-lib"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[lib]
|
|
path = "src/lib.rs"
|
|
|
|
[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"] }
|