Skip to content

Commit

Permalink
mark diffuse textures as srgb when importing
Browse files Browse the repository at this point in the history
  • Loading branch information
nem0 committed Feb 1, 2016
1 parent 2fef6d2 commit 903f791
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions src/editor/import_asset_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -462,7 +462,8 @@ struct ConvertTask : public Lumix::MT::Task

bool saveTexture(const char* texture_path,
const char* source_mesh_dir,
Lumix::FS::IFile& material_file) const
Lumix::FS::IFile& material_file,
bool is_srgb) const
{
Lumix::string texture_source_path(texture_path, m_dialog.m_editor.getAllocator());
int mapping_index = m_dialog.m_path_mapping.find(texture_source_path);
Expand All @@ -486,7 +487,14 @@ struct ConvertTask : public Lumix::MT::Task
material_file << "\t, \"texture\" : {\n\t\t\"source\" : \"" << texture_info.m_basename
<< ".";
material_file << (m_dialog.m_convert_to_dds ? "dds" : texture_info.m_extension);
material_file << "\"\n }\n";
if (is_srgb)
{
material_file << "\", \"is_srgb\" : true\n }\n";
}
else
{
material_file << "\"\n }\n";
}
}
else
{
Expand Down Expand Up @@ -625,26 +633,28 @@ struct ConvertTask : public Lumix::MT::Task
{
aiString texture_path;
material->GetTexture(aiTextureType_DIFFUSE, 0, &texture_path);
saveTexture(texture_path.C_Str(), source_mesh_dir, *file);
saveTexture(texture_path.C_Str(), source_mesh_dir, *file, true);
}
else
{
saveTexture(
PathBuilder("undefined") << *undefined_count << ".dds", source_mesh_dir, *file);
saveTexture(PathBuilder("undefined") << *undefined_count << ".dds",
source_mesh_dir,
*file,
true);
++*undefined_count;
}

if (material->GetTextureCount(aiTextureType_NORMALS) == 1)
{
aiString texture_path;
material->GetTexture(aiTextureType_NORMALS, 0, &texture_path);
saveTexture(texture_path.C_Str(), source_mesh_dir, *file);
saveTexture(texture_path.C_Str(), source_mesh_dir, *file, false);
}
else if (material->GetTextureCount(aiTextureType_HEIGHT) == 1)
{
aiString texture_path;
material->GetTexture(aiTextureType_HEIGHT, 0, &texture_path);
saveTexture(texture_path.C_Str(), source_mesh_dir, *file);
saveTexture(texture_path.C_Str(), source_mesh_dir, *file, false);
}
else if (material->GetTextureCount(aiTextureType_NORMALS) > 1)
{
Expand Down

0 comments on commit 903f791

Please sign in to comment.