mirror of
https://github.com/gfx-rs/wgpu.git
synced 2026-04-22 03:02:01 -04:00
Add glsl handling to convert sample (#69)
* Add glsl handling to convert sample - Also fis extension check for spv and wgsl (missing .) * Use std::path::Path for ext handling * Also fix ext for .comp Missing from last commit
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::{env, fs};
|
||||
use std::{env, fs, path::Path};
|
||||
|
||||
#[derive(Hash, PartialEq, Eq, Serialize, Deserialize)]
|
||||
struct BindSource {
|
||||
@@ -29,8 +29,12 @@ fn main() {
|
||||
println!("Call with <input> <output>");
|
||||
return;
|
||||
}
|
||||
let in_ext_pos = args[1].rfind(".").expect("Input has no extension?");
|
||||
let module = match &args[1][in_ext_pos..] {
|
||||
let ext = Path::new(&args[1])
|
||||
.extension()
|
||||
.expect("Input has no extension?")
|
||||
.to_str()
|
||||
.unwrap();
|
||||
let module = match ext {
|
||||
"spv" => {
|
||||
let input = fs::read(&args[1]).unwrap();
|
||||
naga::front::spv::parse_u8_slice(&input).unwrap()
|
||||
@@ -39,8 +43,32 @@ fn main() {
|
||||
let input = fs::read_to_string(&args[1]).unwrap();
|
||||
naga::front::wgsl::parse_str(&input).unwrap()
|
||||
}
|
||||
//#[cfg(feature = "glsl")] //TODO
|
||||
//"glsl" | "vert" | "frag" | "comp" => {}
|
||||
#[cfg(feature = "glsl")]
|
||||
"vert" => {
|
||||
let input = fs::read_to_string(&args[1]).unwrap();
|
||||
naga::front::glsl::parse_str(&input, "main".to_string(), spirv::ExecutionModel::Vertex)
|
||||
.unwrap()
|
||||
}
|
||||
#[cfg(feature = "glsl")]
|
||||
"frag" => {
|
||||
let input = fs::read_to_string(&args[1]).unwrap();
|
||||
naga::front::glsl::parse_str(
|
||||
&input,
|
||||
"main".to_string(),
|
||||
spirv::ExecutionModel::Fragment,
|
||||
)
|
||||
.unwrap()
|
||||
}
|
||||
#[cfg(feature = "glsl")]
|
||||
"comp" => {
|
||||
let input = fs::read_to_string(&args[1]).unwrap();
|
||||
naga::front::glsl::parse_str(
|
||||
&input,
|
||||
"main".to_string(),
|
||||
spirv::ExecutionModel::GLCompute,
|
||||
)
|
||||
.unwrap()
|
||||
}
|
||||
other => panic!("Unknown input extension: {}", other),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user