Try to avoid updating skidmark each frames.

This commit is contained in:
Vincent Lejeune
2014-03-19 01:53:42 +01:00
parent 5a77c2082a
commit 1e8bc6bc41
3 changed files with 6 additions and 4 deletions

View File

@@ -135,6 +135,8 @@ void SkidMarks::update(float dt, bool force_skid_marks,
// (till these skid mark quads are deleted)
m_left[m_current]->setHardwareMappingHint(scene::EHM_STATIC);
m_right[m_current]->setHardwareMappingHint(scene::EHM_STATIC);
if (STKMeshSceneNode* stkm = dynamic_cast<STKMeshSceneNode*>(m_nodes[m_current]))
stkm->setReloadEachFrame(false);
return;
}
@@ -190,7 +192,7 @@ void SkidMarks::update(float dt, bool force_skid_marks,
new_mesh->addMeshBuffer(smq_right);
scene::IMeshSceneNode *new_node = irr_driver->addMesh(new_mesh);
if (STKMeshSceneNode* stkm = dynamic_cast<STKMeshSceneNode*>(new_node))
stkm->setReloadEachFrame();
stkm->setReloadEachFrame(true);
#ifdef DEBUG
std::string debug_name = m_kart.getIdent()+" (skid-mark)";
new_node->setName(debug_name.c_str());

View File

@@ -36,9 +36,9 @@ STKMeshSceneNode::STKMeshSceneNode(irr::scene::IMesh* mesh, ISceneNode* parent,
createGLMeshes();
}
void STKMeshSceneNode::setReloadEachFrame()
void STKMeshSceneNode::setReloadEachFrame(bool val)
{
reload_each_frame = true;
reload_each_frame = val;
}
void STKMeshSceneNode::createGLMeshes()

View File

@@ -26,7 +26,7 @@ protected:
bool isMaterialInitialized;
bool reload_each_frame;
public:
void setReloadEachFrame();
void setReloadEachFrame(bool);
STKMeshSceneNode(irr::scene::IMesh* mesh, ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id,
const irr::core::vector3df& position = irr::core::vector3df(0, 0, 0),
const irr::core::vector3df& rotation = irr::core::vector3df(0, 0, 0),