mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-04 03:40:14 +00:00
Fix crashes caused when terrain materials don't get created (e.g. due to cg shader bug on Windows/D3D9). Should resolve Bug #1284.
This commit is contained in:
parent
2f56b11530
commit
11ce093a9e
@ -55,6 +55,9 @@ namespace Terrain
|
|||||||
mVertexData->vertexBufferBinding->setBinding(2, uvBuffer);
|
mVertexData->vertexBufferBinding->setBinding(2, uvBuffer);
|
||||||
mVertexData->vertexBufferBinding->setBinding(3, colourBuffer);
|
mVertexData->vertexBufferBinding->setBinding(3, colourBuffer);
|
||||||
|
|
||||||
|
// Assign a default material in case terrain material fails to be created
|
||||||
|
mMaterial = Ogre::MaterialManager::getSingleton().getByName("BaseWhite");
|
||||||
|
|
||||||
mIndexData = OGRE_NEW Ogre::IndexData();
|
mIndexData = OGRE_NEW Ogre::IndexData();
|
||||||
mIndexData->indexStart = 0;
|
mIndexData->indexStart = 0;
|
||||||
}
|
}
|
||||||
@ -67,11 +70,13 @@ namespace Terrain
|
|||||||
|
|
||||||
Chunk::~Chunk()
|
Chunk::~Chunk()
|
||||||
{
|
{
|
||||||
|
if (!mMaterial.isNull())
|
||||||
|
{
|
||||||
#if TERRAIN_USE_SHADER
|
#if TERRAIN_USE_SHADER
|
||||||
sh::Factory::getInstance().destroyMaterialInstance(mMaterial->getName());
|
sh::Factory::getInstance().destroyMaterialInstance(mMaterial->getName());
|
||||||
#endif
|
#endif
|
||||||
Ogre::MaterialManager::getSingleton().remove(mMaterial->getName());
|
Ogre::MaterialManager::getSingleton().remove(mMaterial->getName());
|
||||||
|
}
|
||||||
OGRE_DELETE mVertexData;
|
OGRE_DELETE mVertexData;
|
||||||
OGRE_DELETE mIndexData;
|
OGRE_DELETE mIndexData;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user