Historique des modifications - Message

Message #3917

Sujet: Les VBO dans la version 1.5 svn


TypeDateAuteurContenu
Création du message04-05-2008 06:28:26Ikam
concernant le bug qui fait crasher la demo, j'ai posté un message sur ce sujet sur le forum officiel. Il en est retourné que le probleme viens de la fonction qui consiste à mettre a jour les buffers et les supprimer si ceux-ci n'ont pas été utilisés depuis plusieurs frames.

Le bug viens du fait que l'iterateur qui parcours l'arbre où sont stocké les buffers est cassé quand on supprime un element, alors qu'on parcours l'arbre.

Un membre a proposé une solution qui reset l'iterateur a chaque delete de buffer, ainsi l'iteration se stoppe quand y'a plus de buffer à supprimer, mais c'est pas tres optimisé puisque ca re-parcours l'arbre a chaque fois. J'ai proposé la solution suivante qui me semble plus efficace pour corrigé le probleme :

//! Update all hardware buffers, remove unused ones
void CNullDriver::updateAllHardwareBuffers()
{
core::map<const scene::IMeshBuffer*,SHWBufferLink*>::ParentFirstIterator Iterator=HWBufferMap.getParentFirstIterator();

irr::core::list<SHWBufferLink*> LinkList;

for (;!Iterator.atEnd();Iterator++)
{
SHWBufferLink *Link=Iterator.getNode()->getValue();

Link->LastUsed++;
if (Link->LastUsed>200000)
{
LinkList.push_back(Link);
//deleteHardwareBuffer(Link);
}
}

// if there is some buffers to delete
if(!LinkList.empty())
{
// delete all buffer in list
irr::core::list<SHWBufferLink*>::Iterator it = LinkList.begin();
for (; it != LinkList.end(); ++it)
{
deleteHardwareBuffer((*it));
}
}
}

ps : quoiqu'il en soit les vbo sont toujours en phase de dev et de mise au point avant leur sortie officiel, donc tout ca risque peut etre de changer un peu et n'est valable que pour le moment pour patienter :p

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
93 invités en ligne
membre en ligne: -
RSS Feed