fix example !
This commit is contained in:
Generated
+15
@@ -1071,6 +1071,12 @@ dependencies = [
|
|||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "pollster"
|
||||||
|
version = "0.4.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "portable-atomic"
|
name = "portable-atomic"
|
||||||
version = "1.13.1"
|
version = "1.13.1"
|
||||||
@@ -2298,6 +2304,15 @@ version = "0.57.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
|
checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wsg-examples"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"pollster",
|
||||||
|
"winit",
|
||||||
|
"wsg-lib",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wsg-lib"
|
name = "wsg-lib"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|||||||
+1
-2
@@ -1,4 +1,3 @@
|
|||||||
[workspace]
|
[workspace]
|
||||||
members = ["lib"]
|
members = ["lib", "examples"]
|
||||||
exclude = ["examples"]
|
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|||||||
+40
-2
@@ -11,6 +11,10 @@ use wsg_lib::renderer::Renderer;
|
|||||||
use wsg_lib::vertex::Vertex;
|
use wsg_lib::vertex::Vertex;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
println!(
|
||||||
|
"Répertoire courant : {:?}",
|
||||||
|
std::env::current_dir().unwrap()
|
||||||
|
);
|
||||||
let event_loop = EventLoop::new().unwrap();
|
let event_loop = EventLoop::new().unwrap();
|
||||||
let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
|
let window = Arc::new(WindowBuilder::new().build(&event_loop).unwrap());
|
||||||
|
|
||||||
@@ -24,7 +28,9 @@ fn main() {
|
|||||||
|
|
||||||
// 2. Initialisation du Renderer (Il récupère tout ce dont il a besoin)
|
// 2. Initialisation du Renderer (Il récupère tout ce dont il a besoin)
|
||||||
let mut cache = PipelineCache::new();
|
let mut cache = PipelineCache::new();
|
||||||
cache.register_shader("basic", conf::BASIC_SHADER).unwrap();
|
cache
|
||||||
|
.register_shader("basic", conf::BASIC_SHADER_PATH)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let renderer = Renderer::new(&context, format);
|
let renderer = Renderer::new(&context, format);
|
||||||
|
|
||||||
@@ -32,7 +38,33 @@ fn main() {
|
|||||||
let material = Material::new(renderer.device(), renderer.format(), "basic", &mut cache);
|
let material = Material::new(renderer.device(), renderer.format(), "basic", &mut cache);
|
||||||
|
|
||||||
// Mesh : On utilise le device du renderer
|
// Mesh : On utilise le device du renderer
|
||||||
let vertices = [ /* ... tes sommets ... */ ];
|
let vertices = [
|
||||||
|
// Position (x,y,z) | Normale (x,y,z) | UV (u,v) | Couleur (r,g,b,a)
|
||||||
|
Vertex {
|
||||||
|
position: [-0.5, 0.5, 0.0],
|
||||||
|
normal: [0.0, 0.0, 1.0],
|
||||||
|
uv: [0.0, 0.0],
|
||||||
|
color: [1.0, 0.0, 0.0, 1.0],
|
||||||
|
}, // Haut-Gauche (Rouge)
|
||||||
|
Vertex {
|
||||||
|
position: [0.5, 0.5, 0.0],
|
||||||
|
normal: [0.0, 0.0, 1.0],
|
||||||
|
uv: [1.0, 0.0],
|
||||||
|
color: [0.0, 1.0, 0.0, 1.0],
|
||||||
|
}, // Haut-Droite (Vert)
|
||||||
|
Vertex {
|
||||||
|
position: [0.5, -0.5, 0.0],
|
||||||
|
normal: [0.0, 0.0, 1.0],
|
||||||
|
uv: [1.0, 1.0],
|
||||||
|
color: [0.0, 0.0, 1.0, 1.0],
|
||||||
|
}, // Bas-Droite (Bleu)
|
||||||
|
Vertex {
|
||||||
|
position: [-0.5, -0.5, 0.0],
|
||||||
|
normal: [0.0, 0.0, 1.0],
|
||||||
|
uv: [0.0, 1.0],
|
||||||
|
color: [1.0, 1.0, 0.0, 1.0],
|
||||||
|
}, // Bas-Gauche (Jaune)
|
||||||
|
];
|
||||||
let indices: [u16; 6] = [0, 1, 2, 0, 2, 3];
|
let indices: [u16; 6] = [0, 1, 2, 0, 2, 3];
|
||||||
let mesh = Mesh::new(renderer.device(), &vertices, Some(&indices));
|
let mesh = Mesh::new(renderer.device(), &vertices, Some(&indices));
|
||||||
|
|
||||||
@@ -55,6 +87,12 @@ fn main() {
|
|||||||
renderer.present(frame);
|
renderer.present(frame);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
winit::event::Event::WindowEvent {
|
||||||
|
event: winit::event::WindowEvent::CloseRequested,
|
||||||
|
..
|
||||||
|
} => {
|
||||||
|
elwt.exit(); // C'est ici que tu demandes à la boucle de s'arrêter
|
||||||
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ impl PipelineCache {
|
|||||||
if self.shader_paths.remove(id).is_none() {
|
if self.shader_paths.remove(id).is_none() {
|
||||||
return Err(format!("ID '{}' does not exist.", id));
|
return Err(format!("ID '{}' does not exist.", id));
|
||||||
}
|
}
|
||||||
// Remove cached pipeline so GPU memory is freed (wgpu drops it automatically)
|
// Remove cached pipeline so GPU memory is freed (wgpu drops it automatically)
|
||||||
|
|
||||||
Ok(id.to_string())
|
Ok(id.to_string())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user