33 lines
863 B
Bash
Executable File
33 lines
863 B
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
|
|
# glslc
|
|
glsl_compile="glslc"
|
|
glsl_flags="--target-spv=spv1.6 -std=460"
|
|
glsl_stage_vert="-fshader-stage=vert"
|
|
glsl_stage_frag="-fshader-stage=frag"
|
|
glsl_stage_tesc="-fshader-stage=tesc"
|
|
glsl_stage_tese="-fshader-stage=tese"
|
|
glsl_stage_geom="-fshader-stage=geom"
|
|
glsl_stage_comp="-fshader-stage=comp"
|
|
glsl_out="-o./assets/shaders/"
|
|
|
|
# SPIR-V
|
|
mkdir -p ./assets/shaders
|
|
|
|
for file in ./src/shaders/*.glsl; do
|
|
base_name=$(basename -- "$file" .glsl)
|
|
|
|
case "$base_name" in
|
|
*.vert) glsl_stage="${glsl_stage_vert}" ;;
|
|
*.frag) glsl_stage="${glsl_stage_frag}" ;;
|
|
*.tesc) glsl_stage="${glsl_stage_tesc}" ;;
|
|
*.tese) glsl_stage="${glsl_stage_tese}" ;;
|
|
*.geom) glsl_stage="${glsl_stage_geom}" ;;
|
|
*.comp) glsl_stage="${glsl_stage_comp}" ;;
|
|
*) continue ;;
|
|
esac
|
|
|
|
$glsl_compile $glsl_flags $glsl_stage $file "${glsl_out}${base_name}.spv"
|
|
done
|