rework CompileShaders script
This commit is contained in:
@@ -1,20 +1,38 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
GENERATED_DATA_PATH="../openVulkanoCpp/GeneratedShaderData"
|
GENERATED_DATA_PATH="../openVulkanoCpp/GeneratedShaderData"
|
||||||
rm $GENERATED_DATA_PATH/*.h
|
SHADER_PATH="../openVulkanoCpp/Shader"
|
||||||
rm $GENERATED_DATA_PATH/*.c
|
|
||||||
|
|
||||||
for f in ../openVulkanoCpp/Shader/* ; do
|
check_return_code() {
|
||||||
if [[ "$f" == *.frag ]] || [[ "$f" == *.vert ]]
|
# return code of last executed command
|
||||||
then
|
retVal=$?
|
||||||
filename=$(basename -- "$f")
|
if [ $retVal -ne 0 ]; then
|
||||||
filename="${filename%.*}"
|
read -p "Press enter to continue"
|
||||||
glslang -V $f -o $GENERATED_DATA_PATH/$filename.spv
|
exit 1
|
||||||
bin2c -t -d $GENERATED_DATA_PATH/$filename.h -o $GENERATED_DATA_PATH/$filename.c $GENERATED_DATA_PATH/$filename.spv
|
|
||||||
sed -i 's/char \*entryName/const char *entryName/' $GENERATED_DATA_PATH/$filename.h
|
|
||||||
sed -i 's/const char \*data/const unsigned char *data/' $GENERATED_DATA_PATH/$filename.h
|
|
||||||
rm $GENERATED_DATA_PATH/$filename.spv
|
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
rm *.spv
|
||||||
|
|
||||||
|
for f in $SHADER_PATH/*.vert ; do
|
||||||
|
filename=$(basename -- "$f")
|
||||||
|
filename_no_ext="${filename%.*}"
|
||||||
|
filename_no_ext_first_upper="${filename_no_ext^}"
|
||||||
|
|
||||||
|
glslang -V $f -o $filename_no_ext.vert.spv
|
||||||
|
check_return_code
|
||||||
|
glslang -V $SHADER_PATH/$filename_no_ext.frag -o $filename_no_ext.frag.spv
|
||||||
|
check_return_code
|
||||||
|
rm $GENERATED_DATA_PATH/$filename_no_ext.h $GENERATED_DATA_PATH/$filename_no_ext.c
|
||||||
|
bin2c -t -d $GENERATED_DATA_PATH/$filename_no_ext.h -o $GENERATED_DATA_PATH/$filename_no_ext.c $filename_no_ext.vert.spv $filename_no_ext.frag.spv
|
||||||
|
check_return_code
|
||||||
|
sed -i 's/char \*entryName/const char *entryName/' $GENERATED_DATA_PATH/$filename_no_ext.h
|
||||||
|
sed -i 's/const char \*data/const unsigned char *data/' $GENERATED_DATA_PATH/$filename_no_ext.h
|
||||||
|
# avoid ODR violation
|
||||||
|
sed -i "s/fileTable/fileTable${filename_no_ext_first_upper}/" $GENERATED_DATA_PATH/$filename_no_ext.h $GENERATED_DATA_PATH/$filename_no_ext.c
|
||||||
|
sed -i "s/typedef struct {/#ifndef TFileTableEntry_H_INCLUDED\n#define TFileTableEntry_H_INCLUDED\ntypedef struct {/" $GENERATED_DATA_PATH/$filename_no_ext.h
|
||||||
|
sed -i "s/} TFileTableEntry;/} TFileTableEntry;\n#endif \/*TFileTableEntry_H_INCLUDED*\//" $GENERATED_DATA_PATH/$filename_no_ext.h
|
||||||
|
rm *.spv
|
||||||
done
|
done
|
||||||
|
|
||||||
read -p "Press enter to continue"
|
read -p "Press enter to continue"
|
||||||
|
|||||||
Reference in New Issue
Block a user