X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-maps.pk3dir.git;a=blobdiff_plain;f=scripts%2Fshader-audit.sh;h=0d49617c32fd211e4669fb38189446b5dc87d224;hp=dd371ac0099d80ad8027339e2403ef5f6fa9a6ca;hb=6a9636b77aa080c51b40be7ab99fded1469ea4c4;hpb=5053919bf3d98364ab5f1357f3f6da354cb02a99;ds=sidebyside diff --git a/scripts/shader-audit.sh b/scripts/shader-audit.sh index dd371ac0..0d49617c 100644 --- a/scripts/shader-audit.sh +++ b/scripts/shader-audit.sh @@ -14,7 +14,7 @@ forbidden_prefixes= textures_used= # $1 = shader # $2 = texture -# $3 = self | map | animmap | editorimage +# $3 = shader | map | animmap | editorimage | sky use_texture() { # does texture exist? @@ -24,7 +24,7 @@ use_texture() [ -f "../$2.png" ]; then : else - if [ "$3" = "self" ]; then + if [ "$3" = "shader" ]; then return else echo "(EE) shader $1 uses non-existing texture $2" @@ -55,7 +55,28 @@ use_texture() echo "(EE) shader $1 is not allowed in this shader file (allowed: $allowed_prefixes, forbidden: $forbidden_prefixes)" fi - # TODO verify shader -> texture name + case "$3" in + sky) + case "$2" in + env/*) + ;; + *) + echo "(EE) texture $2 of shader $1 is out of place, $3 textures must be in env/" + ;; + esac + ;; + *) + case "$2" in + env/*) + echo "(EE) texture $2 of shader $1 is out of place, $3 textures must not be in env/" + ;; + *) + ;; + esac + ;; + esac + + # verify shader -> texture name case "$1" in textures/*x/*-*) pre=${1%%x/*}x @@ -116,11 +137,12 @@ use_texture() ;; textures/skies/*) sky=${1#textures/skies/} + sky=${sky%%_*} case "$2" in "$1") # typical place for preview image ;; - env/"${1#textures/skies/}") + env/$sky[/_]*) # typical place for skybox ;; *) @@ -173,12 +195,15 @@ parse_shaderstage() parse_shader() { - use_texture "$parsing_shader" "$parsing_shader" self + use_texture "$parsing_shader" "$parsing_shader" shader while read L A1; do case "$L" in qer_editorimage\ *) use_texture "$parsing_shader" "$A1" editorimage ;; + skyparms\ *) + use_texture "$parsing_shader" "$A1" sky + ;; '{') parse_shaderstage ;;