mirror of
https://github.com/Garux/netradiant-custom.git
synced 2026-09-28 00:00:03 +02:00
Filter non-diffuse textures (bump, glow, local, spec, etc) from texture browser.
This commit is contained in:
+12
-1
@@ -50,6 +50,16 @@ bool operator()( const CopiedString& shader, const CopiedString& other ) const {
|
||||
}
|
||||
};
|
||||
|
||||
static inline bool shader_is_diffuse( const char *shader ){
|
||||
return !string_equal_suffix( shader, "_bump" )
|
||||
&& !string_equal_suffix( shader, "_glow" )
|
||||
&& !string_equal_suffix( shader, "_h" )
|
||||
&& !string_equal_suffix( shader, "_local" )
|
||||
&& !string_equal_suffix( shader, "_luma" )
|
||||
&& !string_equal_suffix( shader, "_nm" )
|
||||
&& !string_equal_suffix( shader, "_s" );
|
||||
}
|
||||
|
||||
inline bool shader_valid( const char* shader ){
|
||||
return string_is_ascii( shader )
|
||||
&& strchr( shader, ' ' ) == 0
|
||||
@@ -57,7 +67,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(){
|
||||
|
||||
@@ -141,6 +141,13 @@ inline bool string_equal_prefix( const char* string, const char* prefix ){
|
||||
return string_equal_n( string, prefix, string_length( prefix ) );
|
||||
}
|
||||
|
||||
/// \brief Returns true if the ending of \p string is equal to \p suffix.
|
||||
/// O(n)
|
||||
inline bool string_equal_suffix( const char* string, const char* suffix){
|
||||
const char *s = string + string_length( string ) - string_length( suffix );
|
||||
return string_equal_n( s , suffix, string_length( suffix ) );
|
||||
}
|
||||
|
||||
/// \brief Copies \p other into \p string and returns \p string.
|
||||
/// Assumes that the space allocated for \p string is at least string_length(other) + 1.
|
||||
/// O(n)
|
||||
|
||||
Reference in New Issue
Block a user