Sync conan versions and Texturebuilder work.

This commit is contained in:
K. S. Ernest (iFire) Lee 2021-11-28 13:15:40 -08:00
parent 10d8a665e0
commit eef1a8f153
2 changed files with 17 additions and 14 deletions

View File

@ -18,7 +18,13 @@ class FBX2glTFConan(ConanFile):
generators = "cmake_find_package", "cmake_paths"
def configure(self):
pass
if (
self.settings.compiler == "gcc"
and self.settings.compiler.libcxx == "libstdc++"
):
raise Exception(
"Rerun 'conan install' with argument: '-s compiler.libcxx=libstdc++11'"
)
def build(self):
cmake = CMake(self)

View File

@ -202,27 +202,24 @@ std::shared_ptr<TextureData> TextureBuilder::simple(int rawTexIndex, const std::
image = new ImageData(relativeFilename, *bufferView, mimeType);
}
} else if (!relativeFilename.empty()) {
} else if (!relativeFilename.empty()) {
std::string outputPath = outputFolder + "/" + relativeFilename;
auto dstAbs = FileUtils::GetAbsolutePath(outputPath);
image = new ImageData(relativeFilename, relativeFilename);
auto srcAbs = FileUtils::GetAbsolutePath(rawTexture.fileLocation);
if (!FileUtils::FileExists(outputPath) && srcAbs != dstAbs) {
if (FileUtils::CopyFile(rawTexture.fileLocation, outputPath, true)) {
if (verboseOutput) {
fmt::printf("Copied texture '%s' to output folder: %s\n", textureName, outputPath);
}
} else {
// no point commenting further on read/write error; CopyFile() does enough of that, and we
// certainly want to to add an image struct to the glTF JSON, with the correct relative
// path reference, even if the copy failed.
}
if (FileUtils::FileExists(outputPath) || srcAbs == dstAbs)) {
return nullptr;
}
}
if (!FileUtils::CopyFile(rawTexture.fileLocation, outputPath, true)) {
return nullptr;
}
if (verboseOutput) {
fmt::printf("Copied texture '%s' to output folder: %s\n", textureName, outputPath);
}
}
if (!image) {
return nullptr;
}
std::shared_ptr<TextureData> texDat = gltf.textures.hold(
new TextureData(textureName, *gltf.defaultSampler, *gltf.images.hold(image)));
textureByIndicesKey.insert(std::make_pair(key, texDat));