Look for filenames using alternative slash characters

This commit is contained in:
Gareth Morgan 2020-03-30 08:54:35 -04:00
parent f77457fa30
commit b8bc39cdfb
1 changed files with 18 additions and 0 deletions

View File

@ -32,6 +32,14 @@
#include "materials/RoughnessMetallicMaterials.hpp" #include "materials/RoughnessMetallicMaterials.hpp"
#include "materials/TraditionalMaterials.hpp" #include "materials/TraditionalMaterials.hpp"
#ifdef _WIN32
#define SLASH_CHAR '\\'
#define ALTERNATIVE_SLASH_CHAR '/'
#else
#define SLASH_CHAR '/'
#define ALTERNATIVE_SLASH_CHAR '\\'
#endif
float scaleFactor; float scaleFactor;
static std::string NativeToUTF8(const std::string& str) { static std::string NativeToUTF8(const std::string& str) {
@ -1032,6 +1040,16 @@ static std::string FindFbxTexture(
return FileUtils::GetAbsolutePath(fileLocation); return FileUtils::GetAbsolutePath(fileLocation);
} }
} }
//Replace slashes with alternative platform version (e.g. '/' instead of '\\')
std::string textureFileNameAltSlash = textureFileName;
std::replace( textureFileNameAltSlash.begin(), textureFileNameAltSlash.end(), ALTERNATIVE_SLASH_CHAR, SLASH_CHAR);
// finally look with alternative slashes
for (int ii = 0; ii < folders.size(); ii++) {
const auto& fileLocation = FindFileLoosely(textureFileNameAltSlash, folders[ii], folderContents[ii]);
if (!fileLocation.empty()) {
return FileUtils::GetAbsolutePath(fileLocation);
}
}
return ""; return "";
} }