File indexing completed on 2024-04-21 15:02:51

0001 #!/bin/bash
0002 
0003 glslang=$(PATH=./glslang/bin:$PATH which glslangValidator 2> /dev/null)
0004 result=0
0005 
0006 shaderdir=$1
0007 
0008 if [ -z $glslang ]; then
0009     echo "Error: glslangValidator not found, cannot validate shaders!"
0010     exit 1
0011 fi
0012 
0013 function print_error
0014 {
0015     echo "While validating $1:"
0016     echo "$2"
0017     result=1
0018 }
0019 
0020 function validate_vert
0021 {
0022     output=$(cat "$shaderdir/header_desktop.glsl" "$shaderdir/$1" | $glslang --stdin -S vert -l -DVALIDATING)
0023     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0024     output=$(cat "$shaderdir/header_desktop_core.glsl" "$shaderdir/$1" | $glslang --stdin -S vert -l -DVALIDATING)
0025     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0026     output=$(cat "$shaderdir/header_es2.glsl" "$shaderdir/$1" | $glslang --stdin -S vert -l -DVALIDATING)
0027     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0028     output=$(cat "$shaderdir/header_es3.glsl" "$shaderdir/$1" | $glslang --stdin -S vert -l -DVALIDATING)
0029     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0030 }
0031 
0032 function validate_frag
0033 {
0034     output=$(cat "$shaderdir/header_desktop.glsl" "$shaderdir/sdf.glsl" "$shaderdir/$1" | $glslang --stdin -S frag -l -DVALIDATING)
0035     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0036     output=$(cat "$shaderdir/header_desktop_core.glsl" "$shaderdir/sdf.glsl" "$shaderdir/$1" | $glslang --stdin -S frag -l -DVALIDATING)
0037     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0038     output=$(cat "$shaderdir/header_es2.glsl" "$shaderdir/sdf.glsl" "$shaderdir/$1" | $glslang --stdin -S frag -l -DVALIDATING)
0039     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0040     output=$(cat "$shaderdir/header_es3.glsl" "$shaderdir/sdf.glsl" "$shaderdir/$1" | $glslang --stdin -S frag -l -DVALIDATING)
0041     if [ $? -ne 0 ]; then print_error "$1" "$output"; fi
0042 }
0043 
0044 validate_vert "piechart.vert"
0045 validate_frag "piechart.frag"
0046 validate_vert "linechart.vert"
0047 validate_frag "linechart.frag"
0048 
0049 if [ $result -eq 0 ]; then
0050     echo "Successfully validated shaders, no errors found."
0051 fi
0052 exit $result