Fixed water creating visible polygons, thanks to Hybrid for the weld tip. Jperg, maybe you can check my memory management makes sense (I think I'm getting the hang of it but I'm still not sure I know what I'm doing)

git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@9797 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
auria 2011-09-11 15:46:47 +00:00
parent f099a6f4c0
commit 727f84d7f8
2 changed files with 9 additions and 1 deletions

View File

@ -556,7 +556,8 @@ scene::ISceneNode* IrrDriver::addWaterNode(scene::IMesh *mesh,
float wave_length)
{
mesh->setMaterialFlag(EMF_GOURAUD_SHADING, true);
scene::ISceneNode* out = m_scene_manager->addWaterSurfaceSceneNode(mesh,
scene::IMesh* welded_mesh = m_scene_manager->getMeshManipulator()->createMeshWelded(mesh);
scene::ISceneNode* out = m_scene_manager->addWaterSurfaceSceneNode(welded_mesh,
wave_height, wave_speed,
wave_length);
out->getMaterial(0).setFlag(EMF_GOURAUD_SHADING, true);

View File

@ -1022,6 +1022,13 @@ void Track::createWater(const XMLNode &node)
wave_height,
wave_speed,
wave_length);
// 'addWaterNode' welds the mesh so keep both the original and the welded copy
mesh->grab();
irr_driver->grabAllTextures(mesh);
m_all_cached_meshes.push_back(mesh);
mesh = ((scene::IMeshSceneNode*)scene_node)->getMesh();
}
else
{