build-shaders.sh 670 B

12345678910111213141516171819202122232425
  1. #!/usr/bin/env bash
  2. set -e
  3. make-header() {
  4. xxd -i "$1" | sed \
  5. -e 's/^unsigned /const unsigned /g' \
  6. -e 's,^const,static const,' \
  7. > "$1.h"
  8. }
  9. # Requires shadercross CLI installed from SDL_shadercross
  10. for filename in *.hlsl; do
  11. if [ -f "$filename" ]; then
  12. echo "$filename"
  13. shadercross "$filename" -o "${filename/.hlsl/.spv}"
  14. make-header "${filename/.hlsl/.spv}"
  15. shadercross "$filename" -o "${filename/.hlsl/.msl}"
  16. make-header "${filename/.hlsl/.msl}"
  17. shadercross "$filename" -o "${filename/.hlsl/.dxil}"
  18. make-header "${filename/.hlsl/.dxil}"
  19. fi
  20. done
  21. rm -f *.spv *.msl *.dxil