Merge branch 'blender-v3.2-release'

This commit is contained in:
Aras Pranckevicius 2022-05-04 15:11:25 +03:00
commit 3bdda67e50
4 changed files with 11 additions and 6 deletions

View File

@ -618,8 +618,13 @@ Span<std::string> OBJParser::mtl_libraries() const
return mtl_libraries_;
}
void OBJParser::add_mtl_library(const std::string &path)
void OBJParser::add_mtl_library(StringRef path)
{
/* Remove any quotes from start and end (T67266, T97794). */
if (path.size() > 2 && path.startswith("\"") && path.endswith("\"")) {
path = path.drop_prefix(1).drop_suffix(1);
}
if (!mtl_libraries_.contains(path)) {
mtl_libraries_.append(path);
}
@ -642,7 +647,7 @@ void OBJParser::add_default_mtl_library()
}
}
MTLParser::MTLParser(StringRef mtl_library, StringRefNull obj_filepath)
MTLParser::MTLParser(StringRefNull mtl_library, StringRefNull obj_filepath)
{
char obj_file_dir[FILE_MAXDIR];
BLI_split_dir_part(obj_filepath.data(), obj_file_dir, FILE_MAXDIR);

View File

@ -41,7 +41,7 @@ class OBJParser {
Span<std::string> mtl_libraries() const;
private:
void add_mtl_library(const std::string &path);
void add_mtl_library(StringRef path);
void add_default_mtl_library();
};
@ -57,7 +57,7 @@ class MTLParser {
/**
* Open material library file.
*/
MTLParser(StringRef mtl_library_, StringRefNull obj_filepath);
MTLParser(StringRefNull mtl_library_, StringRefNull obj_filepath);
/**
* Read MTL file(s) and add MTLMaterial instances to the given Map reference.

View File

@ -108,7 +108,7 @@ void importer_main(Main *bmain,
OBJParser obj_parser{import_params, read_buffer_size};
obj_parser.parse(all_geometries, global_vertices);
for (StringRef mtl_library : obj_parser.mtl_libraries()) {
for (StringRefNull mtl_library : obj_parser.mtl_libraries()) {
MTLParser mtl_parser{mtl_library, import_params.filepath};
mtl_parser.parse_and_store(materials);
}

View File

@ -31,7 +31,7 @@ class obj_mtl_parser_test : public testing::Test {
std::string obj_dir = blender::tests::flags_test_asset_dir() + "/io_tests/obj/";
check_impl(file, obj_dir, expect, expect_count);
}
void check_impl(StringRef mtl_file_path,
void check_impl(StringRefNull mtl_file_path,
StringRefNull file_dir,
const MTLMaterial *expect,
size_t expect_count)