]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/shaderlib.h
Fix MSYS2 issues
[xonotic/netradiant.git] / libs / shaderlib.h
index ee972437befeb934fbfb06c11862af6873d6329b..1d9f5e0a7983216b7660f698ae2e28980b829701 100644 (file)
@@ -50,6 +50,25 @@ bool operator()( const CopiedString& shader, const CopiedString& other ) const {
 }
 };
 
+static inline bool shader_is_diffuse( const char *shader ){
+       return
+               /* Quetoo */
+               !string_equal_suffix( shader, "_h" )
+               && !string_equal_suffix( shader, "_local" )
+               && !string_equal_suffix( shader, "_nm" )
+               && !string_equal_suffix( shader, "_s" )
+               /* DarkPlaces */
+               && !string_equal_suffix( shader, "_bump" )
+               && !string_equal_suffix( shader, "_glow" )
+               && !string_equal_suffix( shader, "_gloss" )
+               && !string_equal_suffix( shader, "_luma" )
+               && !string_equal_suffix( shader, "_norm" )
+               && !string_equal_suffix( shader, "_pants" )
+               && !string_equal_suffix( shader, "_shirt" )
+               && !string_equal_suffix( shader, "_reflect" )
+               ;
+}
+
 inline bool shader_valid( const char* shader ){
        return string_is_ascii( shader )
                   && strchr( shader, ' ' ) == 0
@@ -57,7 +76,8 @@ inline bool shader_valid( const char* shader ){
                   && strchr( shader, '\r' ) == 0
                   && strchr( shader, '\t' ) == 0
                   && strchr( shader, '\v' ) == 0
-                  && strchr( shader, '\\' ) == 0;
+                  && strchr( shader, '\\' ) == 0
+                  && shader_is_diffuse( shader );
 }
 
 inline const char* GlobalTexturePrefix_get(){