XGLLoader: Replace ScopeGuard with std::unique_ptr

pull/1607/head
Turo Lamminen 2017-12-02 17:22:19 +02:00
parent e8eccfa27d
commit bd4f024562
1 changed files with 10 additions and 10 deletions

View File

@ -359,7 +359,7 @@ void XGLImporter::ReadLighting(TempScope& scope)
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
aiLight* XGLImporter::ReadDirectionalLight() aiLight* XGLImporter::ReadDirectionalLight()
{ {
ScopeGuard<aiLight> l(new aiLight()); std::unique_ptr<aiLight> l(new aiLight());
l->mType = aiLightSource_DIRECTIONAL; l->mType = aiLightSource_DIRECTIONAL;
while (ReadElementUpToClosing("directionallight")) { while (ReadElementUpToClosing("directionallight")) {
@ -374,13 +374,13 @@ aiLight* XGLImporter::ReadDirectionalLight()
l->mColorSpecular = ReadCol3(); l->mColorSpecular = ReadCol3();
} }
} }
return l.dismiss(); return l.release();
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
aiNode* XGLImporter::ReadObject(TempScope& scope, bool skipFirst, const char* closetag) aiNode* XGLImporter::ReadObject(TempScope& scope, bool skipFirst, const char* closetag)
{ {
ScopeGuard<aiNode> nd(new aiNode()); std::unique_ptr<aiNode> nd(new aiNode());
std::vector<aiNode*> children; std::vector<aiNode*> children;
std::vector<unsigned int> meshes; std::vector<unsigned int> meshes;
@ -463,11 +463,11 @@ aiNode* XGLImporter::ReadObject(TempScope& scope, bool skipFirst, const char* cl
nd->mChildren = new aiNode*[nd->mNumChildren](); nd->mChildren = new aiNode*[nd->mNumChildren]();
for(unsigned int i = 0; i < nd->mNumChildren; ++i) { for(unsigned int i = 0; i < nd->mNumChildren; ++i) {
nd->mChildren[i] = children[i]; nd->mChildren[i] = children[i];
children[i]->mParent = nd; children[i]->mParent = nd.get();
} }
} }
return nd.dismiss(); return nd.release();
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
@ -539,7 +539,7 @@ aiMatrix4x4 XGLImporter::ReadTrafo()
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
aiMesh* XGLImporter::ToOutputMesh(const TempMaterialMesh& m) aiMesh* XGLImporter::ToOutputMesh(const TempMaterialMesh& m)
{ {
ScopeGuard<aiMesh> mesh(new aiMesh()); std::unique_ptr<aiMesh> mesh(new aiMesh());
mesh->mNumVertices = static_cast<unsigned int>(m.positions.size()); mesh->mNumVertices = static_cast<unsigned int>(m.positions.size());
mesh->mVertices = new aiVector3D[mesh->mNumVertices]; mesh->mVertices = new aiVector3D[mesh->mNumVertices];
@ -576,7 +576,7 @@ aiMesh* XGLImporter::ToOutputMesh(const TempMaterialMesh& m)
mesh->mPrimitiveTypes = m.pflags; mesh->mPrimitiveTypes = m.pflags;
mesh->mMaterialIndex = m.matid; mesh->mMaterialIndex = m.matid;
return mesh.dismiss(); return mesh.release();
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
@ -745,7 +745,7 @@ void XGLImporter::ReadMaterial(TempScope& scope)
{ {
const unsigned int mat_id = ReadIDAttr(); const unsigned int mat_id = ReadIDAttr();
ScopeGuard<aiMaterial> mat(new aiMaterial()); std::unique_ptr<aiMaterial> mat(new aiMaterial());
while (ReadElementUpToClosing("mat")) { while (ReadElementUpToClosing("mat")) {
const std::string& s = GetElementName(); const std::string& s = GetElementName();
if (s == "amb") { if (s == "amb") {
@ -774,8 +774,8 @@ void XGLImporter::ReadMaterial(TempScope& scope)
} }
} }
scope.materials[mat_id] = mat; scope.materials[mat_id] = mat.get();
scope.materials_linear.push_back(mat.dismiss()); scope.materials_linear.push_back(mat.release());
} }