Skip to content

Commit

Permalink
Fix import of embedded textures
Browse files Browse the repository at this point in the history
  • Loading branch information
jankrassnigg committed Jul 18, 2023
1 parent 1345085 commit fc89636
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,23 +41,15 @@ namespace ezMeshImportUtils
return ezString();
}

sFinalTextureName.Prepend("Embedded");
itTex.Value().GenerateFileName(sFinalTextureName);

ezStringBuilder sEmbededFile;
sEmbededFile = szImportTargetFolder;
sEmbededFile.AppendPath(sFinalTextureName);
sEmbededFile.ChangeFileExtension(itTex.Value().m_sFileFormatExtension);

// ezFileWriter out;
// if (out.Open(sEmbededFile).Succeeded())
//{
// out.WriteBytes(itTex.Value().m_RawData.GetPtr(), itTex.Value().m_RawData.GetCount()).AssertSuccess();
// }

relTexturePath = sEmbededFile;
}


ezStringBuilder newAssetPathAbs = szImportTargetFolder;
newAssetPathAbs.AppendPath(sFinalTextureName);
newAssetPathAbs.ChangeFileExtension("ezTextureAsset");
Expand Down Expand Up @@ -376,7 +368,9 @@ namespace ezMeshImportUtils
{
EZ_PROFILE_SCOPE("ImportMeshAssetMaterials");

const ezStringBuilder targetDirectory(szDocumentDirectory, "_data/");
ezStringBuilder targetDirectory = szDocumentDirectory;
targetDirectory.RemoveFileExtension();
targetDirectory.Append("_data/");
const ezStringBuilder sourceDirectory = ezPathUtils::GetFileDirectory(pImporter->GetImportOptions().m_sSourceFile);

ezStringBuilder tmp;
Expand Down Expand Up @@ -411,13 +405,11 @@ namespace ezMeshImportUtils
}

ezStringBuilder sFinalTextureName;
ezPathUtils::MakeValidFilename(itTex.Key().GetFileName(), '_', sFinalTextureName);
sFinalTextureName.Prepend("Embedded");
itTex.Value().GenerateFileName(sFinalTextureName);

ezStringBuilder sEmbededFile;
sEmbededFile = targetDirectory;
sEmbededFile.AppendPath(sFinalTextureName);
sEmbededFile.ChangeFileExtension(itTex.Value().m_sFileFormatExtension);

ezDeferredFileWriter out;
out.SetOutput(sEmbededFile, true);
Expand Down
8 changes: 8 additions & 0 deletions Code/Tools/Libs/ModelImporter2/Importer/Importer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,12 @@ namespace ezModelImporter2
return res;
}

void OutputTexture::GenerateFileName(ezStringBuilder& out_sName) const
{
ezStringBuilder tmp("Embedded_", m_sFilename);

ezPathUtils::MakeValidFilename(tmp.GetFileName(), '_', out_sName);
out_sName.ChangeFileExtension(m_sFileFormatExtension);
}

} // namespace ezModelImporter2
3 changes: 3 additions & 0 deletions Code/Tools/Libs/ModelImporter2/Importer/Importer.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,11 @@ namespace ezModelImporter2

struct EZ_MODELIMPORTER2_DLL OutputTexture
{
ezString m_sFilename;
ezString m_sFileFormatExtension;
ezConstByteArrayPtr m_RawData;

void GenerateFileName(ezStringBuilder& out_sName) const;
};

struct EZ_MODELIMPORTER2_DLL OutputMaterial
Expand Down
15 changes: 9 additions & 6 deletions Code/Tools/Libs/ModelImporter2/ImporterAssimp/ImporterAssimp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,21 @@ namespace ezModelImporter2

if (m_pScene->mNumTextures > 0 && m_pScene->mTextures)
{
ezStringBuilder refName;

for (ezUInt32 i = 0; i < m_pScene->mNumTextures; ++i)
{
const auto& st = *m_pScene->mTextures[i];
ezStringBuilder fileName = st.mFilename.C_Str();

if (fileName.IsEmpty())
refName.Format("*{}", i);

auto& tex = m_OutputTextures[refName];
tex.m_sFilename = st.mFilename.C_Str();
if (tex.m_sFilename.IsEmpty())
{
fileName.Format("*{}", i);
tex.m_sFilename = refName;
}

auto& tex = m_OutputTextures[fileName];

if (st.mHeight == 0 && st.mWidth > 0)
{
tex.m_sFileFormatExtension = st.achFormatHint;
Expand Down Expand Up @@ -275,7 +278,7 @@ namespace ezModelImporter2
}
else
{
//ezLog::Error("TODO: error message");
// ezLog::Error("TODO: error message");
}
}
}
Expand Down

0 comments on commit fc89636

Please sign in to comment.