build-shaders.sh 645 B

123456789101112131415161718192021222324
  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. shadercross "$filename" -o "${filename/.hlsl/.spv}"
  13. make-header "${filename/.hlsl/.spv}"
  14. shadercross "$filename" -o "${filename/.hlsl/.msl}"
  15. make-header "${filename/.hlsl/.msl}"
  16. shadercross "$filename" -o "${filename/.hlsl/.dxil}"
  17. make-header "${filename/.hlsl/.dxil}"
  18. fi
  19. done
  20. rm -f *.spv *.msl *.dxil