소스 검색

Ogre: Material nullptr-fix, Loader is hopefully no longer confused by 'submeshnames' tag

Jonathan Klein 12 년 전
부모
커밋
fe19ba9da6
2개의 변경된 파일11개의 추가작업 그리고 3개의 파일을 삭제
  1. 9 0
      code/OgreImporter.cpp
  2. 2 3
      code/OgreMaterial.cpp

+ 9 - 0
code/OgreImporter.cpp

@@ -165,6 +165,15 @@ void OgreImporter::InternReadFile(const std::string &pFile, aiScene *pScene, Ass
 	//____________________________________________________________
 
 
+	//skip submeshnames (stupid irrxml)
+	if(MeshFile->getNodeName()==string("submeshnames"))
+	{
+		XmlRead(MeshFile.get());
+		while(MeshFile->getNodeName()==string("submesh"))
+			XmlRead(MeshFile.get());
+	}
+
+
 	//----------------Load the skeleton: -------------------------------
 	vector<Bone> Bones;
 	vector<Animation> Animations;

+ 2 - 3
code/OgreMaterial.cpp

@@ -65,9 +65,8 @@ namespace Ogre
 aiMaterial* OgreImporter::LoadMaterial(const std::string MaterialName) const
 {
 	const aiScene* const m_CurrentScene=this->m_CurrentScene;//make sure, that we can access but not change the scene
-	(void)m_CurrentScene;
 
-	/*For bettetr understanding of the material parser, here is a material example file:
+	/*For better understanding of the material parser, here is a material example file:
 
 	material Sarg
 	{
@@ -143,7 +142,7 @@ aiMaterial* OgreImporter::LoadMaterial(const std::string MaterialName) const
 					if(NULL==MatFilePtr)
 					{
 						DefaultLogger::get()->error(m_MaterialLibFilename+" and "+MaterialFileName + " could not be opened, Material will not be loaded!");
-						return NULL;
+						return new aiMaterial();
 					}
 				}
 			}