sdl3.c3l/compile-shaders.sh
2025-05-20 21:43:18 +02:00

33 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
source_directory="shaders/source"
compiled_directory="shaders/compiled"
vulkan_version="1.0"
mkdir -p $compiled_directory
rm -f $compiled_directory/*
echo "compiling from $source_directory -> $compiled_directory"
for file in "$source_directory"/*; do
filename=$(basename "$file")
if [[ "$filename" =~ ^([^\.]+)\.([^\.]+)\.([^\.]+)$ ]]; then
middlepart="${BASH_REMATCH[2]}"
filename="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
shader_language="${BASH_REMATCH[3]}"
if [[ "$shader_language" != "glsl" ]]; then
echo "FUCK YOU I'M NOT COMPILING HLSL SHADERS, DO IT YOURSELF"
exit 1
fi
if [[ "$middlepart" == "frag" ]]; then
echo "frag $filename.$shader_language > $filename.spv"
glslc -O -fshader-stage=fragment --target-env=vulkan$vulkan_version "$source_directory/$filename.$shader_language" -fshader-stage=fragment -o "$compiled_directory/$filename.spv"
elif [[ "$middlepart" == "vert" ]]; then
echo "vert $filename.$shader_language > $filename.spv"
glslc -O -fshader-stage=vertex --target-env=vulkan$vulkan_version "$source_directory/$filename.$shader_language" -o "$compiled_directory/$filename.spv"
fi
fi
done
tree $compiled_directory