Updated tests, changed model encoders to output content to a stream

This commit is contained in:
Vladyslav Baranovskyi
2024-11-25 19:34:05 +02:00
parent 7ede43d1c2
commit ba8574f537
4 changed files with 113 additions and 110 deletions

View File

@@ -24,8 +24,8 @@ namespace OpenVulkano::Scene
if (!file.is_open())
throw std::runtime_error("Failed to open file '" + filePath + "' for writing!");
auto [objContents, mtlContents] = GetObjContents(geometry, "");
file << objContents;
std::stringstream dummy;
WriteObjContents(geometry, "", file, dummy);
file.close();
}
@@ -34,8 +34,7 @@ namespace OpenVulkano::Scene
std::ofstream file(filePath);
if (!file.is_open())
throw std::runtime_error("Failed to open file '" + filePath + "' for writing!");
std::string scene = GetUsdContents(geometry);
file << scene << "\n";
WriteUsdContents(file, geometry);
file.close();
}
@@ -43,13 +42,14 @@ namespace OpenVulkano::Scene
{
OpenVulkano::ArchiveWriter zipWriter(zipPath.c_str());
auto [objContents, mtlContents] = GetObjContents(geometry, texturePath);
std::stringstream objContents, mtlContents;
WriteObjContents(geometry, texturePath, objContents, mtlContents);
auto objDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("model.obj", objContents.size());
zipWriter.AddFile(objDesc, objContents.data());
auto objDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("model.obj", objContents.str().size());
zipWriter.AddFile(objDesc, objContents.str().data());
auto mtlDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("material.mtl", mtlContents.size());
zipWriter.AddFile(mtlDesc, mtlContents.data());
auto mtlDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("material.mtl", mtlContents.str().size());
zipWriter.AddFile(mtlDesc, mtlContents.str().data());
if (!texturePath.empty() && std::filesystem::exists(texturePath))
{
@@ -63,9 +63,10 @@ namespace OpenVulkano::Scene
{
OpenVulkano::ZipWriter zipWriter(usdzPath);
std::string usd = GetUsdContents(geometry, texturePath);
auto usdDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("geometry.usda", usd.size());
zipWriter.AddFile(usdDesc, usd.data());
std::stringstream usdFile;
WriteUsdContents(usdFile, geometry);
auto usdDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("geometry.usda", usdFile.str().size());
zipWriter.AddFile(usdDesc, usdFile.str().data());
if (!texturePath.empty() && std::filesystem::exists(texturePath))
{
@@ -73,7 +74,5 @@ namespace OpenVulkano::Scene
auto texDesc = OpenVulkano::FileDescription::MakeDescriptionForFile("texture.png", textureFile.Size());
zipWriter.AddFile(texDesc, textureFile.Data());
}
zipWriter.Close();
}
}