]> de.git.xonotic.org Git - xonotic/xonotic-maps.pk3dir.git/blobdiff - scripts/shader-audit.sh
Merge branch 'master' into divVerent/skyboxes
[xonotic/xonotic-maps.pk3dir.git] / scripts / shader-audit.sh
index 13256f7daa1feacbb41d8b1096e705d62b8cd1ea..95ae9ae18851f454aac3700f010192cf8e4b8274 100644 (file)
@@ -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
@@ -128,6 +149,15 @@ use_texture()
                                        ;;
                        esac
                        ;;
+               models/*)
+                       case "$2" in
+                               models/*)
+                                       ;;
+                               *)
+                                       echo "(EE) texture $2 of shader $1 is out of place, recommended file name is $1 or models/*"
+                                       ;;
+                       esac
+                       ;;
                *)
                        echo "(EE) no shader name pattern for $1"
                        ;;
@@ -164,12 +194,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
                                ;;
@@ -200,7 +233,7 @@ parse_shaderfile()
        esac
        while read L; do
                case "$L" in
-                       textures/*)
+                       */*)
                                parsing_shader="`normalize "$L"`"
                                if [ x"$L" != x"$parsing_shader" ]; then
                                        echo "(WW) normalized shader name $L to $parsing_shader"