refactor examples

This commit is contained in:
Jérôme Bousquié
2026-09-25 10:19:24 +02:00
parent ab3f056dbb
commit 35aeb769a8
37 changed files with 3430 additions and 457 deletions
+66
View File
@@ -116,3 +116,69 @@ fn tonemap_shader_is_valid_wgsl() {
"the three entry points are expected"
);
}
/// Parses and fully validates the `bloom_threshold.wgsl` shader (Étape 23) via naga.
#[test]
fn bloom_threshold_shader_is_valid_wgsl() {
let src = include_str!("../src/shaders/bloom_threshold.wgsl");
let module = naga::front::wgsl::parse_str(src)
.unwrap_or_else(|e| panic!("bloom_threshold.wgsl: parsing error: {e:?}"));
let mut validator = naga::valid::Validator::new(
naga::valid::ValidationFlags::all(),
naga::valid::Capabilities::all(),
);
validator
.validate(&module)
.unwrap_or_else(|e| panic!("bloom_threshold.wgsl: validation failed: {e:?}"));
let mut entry_names: Vec<&str> = module
.entry_points
.iter()
.map(|ep| ep.name.as_str())
.collect();
entry_names.sort();
assert_eq!(entry_names, vec!["fs_main", "vs_main"]);
}
/// Parses and fully validates the `bloom_blur.wgsl` shader (Étape 23) via naga.
#[test]
fn bloom_blur_shader_is_valid_wgsl() {
let src = include_str!("../src/shaders/bloom_blur.wgsl");
let module = naga::front::wgsl::parse_str(src)
.unwrap_or_else(|e| panic!("bloom_blur.wgsl: parsing error: {e:?}"));
let mut validator = naga::valid::Validator::new(
naga::valid::ValidationFlags::all(),
naga::valid::Capabilities::all(),
);
validator
.validate(&module)
.unwrap_or_else(|e| panic!("bloom_blur.wgsl: validation failed: {e:?}"));
let mut entry_names: Vec<&str> = module
.entry_points
.iter()
.map(|ep| ep.name.as_str())
.collect();
entry_names.sort();
assert_eq!(entry_names, vec!["fs_main", "vs_main"]);
}
/// Parses and fully validates the `bloom_composite.wgsl` shader (Étape 23) via naga.
#[test]
fn bloom_composite_shader_is_valid_wgsl() {
let src = include_str!("../src/shaders/bloom_composite.wgsl");
let module = naga::front::wgsl::parse_str(src)
.unwrap_or_else(|e| panic!("bloom_composite.wgsl: parsing error: {e:?}"));
let mut validator = naga::valid::Validator::new(
naga::valid::ValidationFlags::all(),
naga::valid::Capabilities::all(),
);
validator
.validate(&module)
.unwrap_or_else(|e| panic!("bloom_composite.wgsl: validation failed: {e:?}"));
let mut entry_names: Vec<&str> = module
.entry_points
.iter()
.map(|ep| ep.name.as_str())
.collect();
entry_names.sort();
assert_eq!(entry_names, vec!["fs_main", "vs_main"]);
}