Fix terrain derived data update (bug 534, bug 544)

actorid
scrawl 12 years ago
parent 7b1b0ec41c
commit 596628d339

@ -3,6 +3,7 @@
#include <OgreTerrain.h>
#include <OgreTerrainGroup.h>
#include <OgreHardwarePixelBuffer.h>
#include <OgreRoot.h>
#include "../mwworld/esmstore.hpp"
@ -151,6 +152,16 @@ namespace MWRender
mTerrainGroup.loadTerrain(terrainX, terrainY, true);
// when loading from a heightmap, Ogre::Terrain does not update the derived data (normal map, LOD)
// synchronously, even if we supply synchronous = true parameter to loadTerrain.
// the following to be the only way to make sure derived data is ready when rendering the next frame.
while (mTerrainGroup.isDerivedDataUpdateInProgress())
{
// we need to wait for this to finish
OGRE_THREAD_SLEEP(5);
Root::getSingleton().getWorkQueue()->processResponses();
}
Terrain* terrain = mTerrainGroup.getTerrain(terrainX, terrainY);
initTerrainBlendMaps(terrain,
cellX, cellY,

Loading…
Cancel
Save