B3DImporter: Store materials in unique_ptr

pull/1635/head
Turo Lamminen 2017-12-12 19:16:06 +02:00
parent f1707e920d
commit 08a35d4e1f
2 changed files with 5 additions and 5 deletions

View File

@ -309,8 +309,7 @@ void B3DImporter::ReadBRUS(){
/*int blend=**/ReadInt(); /*int blend=**/ReadInt();
int fx=ReadInt(); int fx=ReadInt();
aiMaterial *mat=new aiMaterial; std::unique_ptr<aiMaterial> mat(new aiMaterial);
_materials.push_back( mat );
// Name // Name
aiString ainame( name ); aiString ainame( name );
@ -347,6 +346,7 @@ void B3DImporter::ReadBRUS(){
mat->AddProperty( &texname,AI_MATKEY_TEXTURE_DIFFUSE(0) ); mat->AddProperty( &texname,AI_MATKEY_TEXTURE_DIFFUSE(0) );
} }
} }
_materials.emplace_back( std::move(mat) );
} }
} }
@ -702,10 +702,10 @@ void B3DImporter::ReadBB3D( aiScene *scene ){
//material //material
if( !_materials.size() ){ if( !_materials.size() ){
_materials.push_back( new aiMaterial ); _materials.emplace_back( std::unique_ptr<aiMaterial>(new aiMaterial) );
} }
scene->mNumMaterials= static_cast<unsigned int>(_materials.size()); scene->mNumMaterials= static_cast<unsigned int>(_materials.size());
scene->mMaterials=to_array( _materials ); scene->mMaterials = unique_to_array( _materials );
//meshes //meshes
scene->mNumMeshes= static_cast<unsigned int>(_meshes.size()); scene->mNumMeshes= static_cast<unsigned int>(_meshes.size());

View File

@ -117,7 +117,7 @@ private:
std::vector<unsigned> _stack; std::vector<unsigned> _stack;
std::vector<std::string> _textures; std::vector<std::string> _textures;
std::vector<aiMaterial*> _materials; std::vector<std::unique_ptr<aiMaterial> > _materials;
int _vflags,_tcsets,_tcsize; int _vflags,_tcsets,_tcsize;
std::vector<Vertex> _vertices; std::vector<Vertex> _vertices;